Skip to content

Commit cc02024

Browse files
authored
Rollup merge of #101216 - ehuss:sanitizer-links, r=JohnTitor
Use in-page links for sanitizer docs. This updates the sanitizer documentation page so that the links in the summary at the top jump to the relevant sections within the page instead of leading away to a different site. I think this makes it a little easier to navigate this page which has gotten quite long. This also fixes the broken link for MemTagSanitizer which was not defined. It also adds MemTagSanitizer to the external summary list at the bottom of the page.
2 parents 8ed9ac6 + 8588374 commit cc02024

File tree

1 file changed

+26
-10
lines changed

1 file changed

+26
-10
lines changed

src/doc/unstable-book/src/compiler-flags/sanitizer.md

+26-10
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ The tracking issues for this feature are:
99

1010
This feature allows for use of one of following sanitizers:
1111

12-
* [AddressSanitizer][clang-asan] a fast memory error detector.
13-
* [ControlFlowIntegrity][clang-cfi] LLVM Control Flow Integrity (CFI) provides
12+
* [AddressSanitizer](#addresssanitizer) a fast memory error detector.
13+
* [ControlFlowIntegrity](#controlflowintegrity) LLVM Control Flow Integrity (CFI) provides
1414
forward-edge control flow protection.
15-
* [HWAddressSanitizer][clang-hwasan] a memory error detector similar to
15+
* [HWAddressSanitizer](#hwaddresssanitizer) a memory error detector similar to
1616
AddressSanitizer, but based on partial hardware assistance.
17-
* [LeakSanitizer][clang-lsan] a run-time memory leak detector.
18-
* [MemorySanitizer][clang-msan] a detector of uninitialized reads.
19-
* [MemTagSanitizer][clang-memtag] fast memory error detector based on
17+
* [LeakSanitizer](#leaksanitizer) a run-time memory leak detector.
18+
* [MemorySanitizer](#memorysanitizer) a detector of uninitialized reads.
19+
* [MemTagSanitizer](#memtagsanitizer) fast memory error detector based on
2020
Armv8.5-A Memory Tagging Extension.
21-
* [ShadowCallStack][clang-scs] provides backward-edge control flow protection.
22-
* [ThreadSanitizer][clang-tsan] a fast data race detector.
21+
* [ShadowCallStack](#shadowcallstack) provides backward-edge control flow protection.
22+
* [ThreadSanitizer](#threadsanitizer) a fast data race detector.
2323

2424
To enable a sanitizer compile with `-Zsanitizer=address`,`-Zsanitizer=cfi`,
2525
`-Zsanitizer=hwaddress`, `-Zsanitizer=leak`, `-Zsanitizer=memory`,
@@ -58,6 +58,8 @@ AddressSanitizer works with non-instrumented code although it will impede its
5858
ability to detect some bugs. It is not expected to produce false positive
5959
reports.
6060

61+
See the [Clang AddressSanitizer documentation][clang-asan] for more details.
62+
6163
## Examples
6264

6365
Stack buffer overflow:
@@ -204,6 +206,8 @@ tracking issue [#89653](https://github.com/rust-lang/rust/issues/89653)).
204206
205207
LLVM CFI can be enabled with -Zsanitizer=cfi and requires LTO (i.e., -Clto).
206208
209+
See the [Clang ControlFlowIntegrity documentation][clang-cfi] for more details.
210+
207211
## Example
208212
209213
```text
@@ -430,6 +434,8 @@ HWAddressSanitizer requires `tagged-globals` target feature to instrument
430434
globals. To enable this target feature compile with `-C
431435
target-feature=+tagged-globals`
432436
437+
See the [Clang HWAddressSanitizer documentation][clang-hwasan] for more details.
438+
433439
## Example
434440
435441
Heap buffer overflow:
@@ -507,6 +513,8 @@ LeakSanitizer is supported on the following targets:
507513
* `x86_64-apple-darwin`
508514
* `x86_64-unknown-linux-gnu`
509515
516+
See the [Clang LeakSanitizer documentation][clang-lsan] for more details.
517+
510518
# MemorySanitizer
511519
512520
MemorySanitizer is detector of uninitialized reads.
@@ -521,6 +529,8 @@ MemorySanitizer requires all program code to be instrumented. C/C++ dependencies
521529
need to be recompiled using Clang with `-fsanitize=memory` option. Failing to
522530
achieve that will result in false positive reports.
523531
532+
See the [Clang MemorySanitizer documentation][clang-msan] for more details.
533+
524534
## Example
525535
526536
Detecting the use of uninitialized memory. The `-Zbuild-std` flag rebuilds and
@@ -569,7 +579,7 @@ MemTagSanitizer is supported on the following targets:
569579
MemTagSanitizer requires hardware support and the `mte` target feature.
570580
To enable this target feature compile with `-C target-feature="+mte"`.
571581
572-
More information can be found in the associated [LLVM documentation](https://llvm.org/docs/MemTagSanitizer.html).
582+
See the [LLVM MemTagSanitizer documentation][llvm-memtag] for more details.
573583
574584
# ShadowCallStack
575585
@@ -581,7 +591,9 @@ ShadowCallStack can be enabled with `-Zsanitizer=shadow-call-stack` option and i
581591
582592
* `aarch64-linux-android`
583593
584-
A runtime must be provided by the application or operating system. See the [LLVM documentation][clang-scs] for further details.
594+
A runtime must be provided by the application or operating system.
595+
596+
See the [Clang ShadowCallStack documentation][clang-scs] for more details.
585597
586598
# ThreadSanitizer
587599
@@ -604,6 +616,8 @@ can lead to false positive reports.
604616
ThreadSanitizer does not support atomic fences `std::sync::atomic::fence`,
605617
nor synchronization performed using inline assembly code.
606618
619+
See the [Clang ThreadSanitizer documentation][clang-tsan] for more details.
620+
607621
## Example
608622
609623
```rust
@@ -673,6 +687,7 @@ Sanitizers produce symbolized stacktraces when llvm-symbolizer binary is in `PAT
673687
* [HWAddressSanitizer in Clang][clang-hwasan]
674688
* [LeakSanitizer in Clang][clang-lsan]
675689
* [MemorySanitizer in Clang][clang-msan]
690+
* [MemTagSanitizer in LLVM][llvm-memtag]
676691
* [ThreadSanitizer in Clang][clang-tsan]
677692
678693
[clang-asan]: https://clang.llvm.org/docs/AddressSanitizer.html
@@ -682,3 +697,4 @@ Sanitizers produce symbolized stacktraces when llvm-symbolizer binary is in `PAT
682697
[clang-msan]: https://clang.llvm.org/docs/MemorySanitizer.html
683698
[clang-scs]: https://clang.llvm.org/docs/ShadowCallStack.html
684699
[clang-tsan]: https://clang.llvm.org/docs/ThreadSanitizer.html
700+
[llvm-memtag]: https://llvm.org/docs/MemTagSanitizer.html

0 commit comments

Comments
 (0)