Rollup merge of #68164 - tmiasko:no-sanitize, r=nikomatsakis
Selectively disable sanitizer instrumentation Add `no_sanitize` attribute that allows to opt out from sanitizer instrumentation in an annotated function.
This commit is contained in:
commit
2f1eaeea77
20 changed files with 279 additions and 29 deletions
4
src/test/ui/feature-gates/feature-gate-no_sanitize.rs
Normal file
4
src/test/ui/feature-gates/feature-gate-no_sanitize.rs
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#[no_sanitize(address)]
|
||||
//~^ the `#[no_sanitize]` attribute is an experimental feature
|
||||
fn main() {
|
||||
}
|
||||
12
src/test/ui/feature-gates/feature-gate-no_sanitize.stderr
Normal file
12
src/test/ui/feature-gates/feature-gate-no_sanitize.stderr
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
error[E0658]: the `#[no_sanitize]` attribute is an experimental feature
|
||||
--> $DIR/feature-gate-no_sanitize.rs:1:1
|
||||
|
|
||||
LL | #[no_sanitize(address)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: for more information, see https://github.com/rust-lang/rust/issues/39699
|
||||
= help: add `#![feature(no_sanitize)]` to the crate attributes to enable
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0658`.
|
||||
5
src/test/ui/invalid/invalid-no-sanitize.rs
Normal file
5
src/test/ui/invalid/invalid-no-sanitize.rs
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#![feature(no_sanitize)]
|
||||
|
||||
#[no_sanitize(brontosaurus)] //~ ERROR invalid argument
|
||||
fn main() {
|
||||
}
|
||||
10
src/test/ui/invalid/invalid-no-sanitize.stderr
Normal file
10
src/test/ui/invalid/invalid-no-sanitize.stderr
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
error: invalid argument for `no_sanitize`
|
||||
--> $DIR/invalid-no-sanitize.rs:3:15
|
||||
|
|
||||
LL | #[no_sanitize(brontosaurus)]
|
||||
| ^^^^^^^^^^^^
|
||||
|
|
||||
= note: expected one of: `address`, `memory` or `thread`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
15
src/test/ui/sanitize-inline-always.rs
Normal file
15
src/test/ui/sanitize-inline-always.rs
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
// check-pass
|
||||
|
||||
#![feature(no_sanitize)]
|
||||
|
||||
#[inline(always)]
|
||||
//~^ NOTE inlining requested here
|
||||
#[no_sanitize(address)]
|
||||
//~^ WARN will have no effect after inlining
|
||||
//~| NOTE on by default
|
||||
fn x() {
|
||||
}
|
||||
|
||||
fn main() {
|
||||
x()
|
||||
}
|
||||
13
src/test/ui/sanitize-inline-always.stderr
Normal file
13
src/test/ui/sanitize-inline-always.stderr
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
warning: `no_sanitize` will have no effect after inlining
|
||||
--> $DIR/sanitize-inline-always.rs:7:1
|
||||
|
|
||||
LL | #[no_sanitize(address)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(inline_no_sanitize)]` on by default
|
||||
note: inlining requested here
|
||||
--> $DIR/sanitize-inline-always.rs:5:1
|
||||
|
|
||||
LL | #[inline(always)]
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue