Skip to content

Commit 8588374

Browse files
committed
Use in-page links for sanitizer docs.
1 parent 350cca3 commit 8588374

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)