| // Verifies that when compiling with -Zsanitizer=option, |
| // the `#[cfg(sanitize = "option")]` attribute is configured. |
| |
| // check-pass |
| // revisions: address cfi kcfi leak memory thread |
| //compile-flags: -Ctarget-feature=-crt-static |
| //[address]needs-sanitizer-address |
| //[address]compile-flags: -Zsanitizer=address --cfg address |
| //[cfi]needs-sanitizer-cfi |
| //[cfi]compile-flags: -Zsanitizer=cfi --cfg cfi |
| //[cfi]compile-flags: -Clto -Ccodegen-units=1 |
| //[kcfi]needs-llvm-components: x86 |
| //[kcfi]compile-flags: -Zsanitizer=kcfi --cfg kcfi --target x86_64-unknown-none |
| //[leak]needs-sanitizer-leak |
| //[leak]compile-flags: -Zsanitizer=leak --cfg leak |
| //[memory]needs-sanitizer-memory |
| //[memory]compile-flags: -Zsanitizer=memory --cfg memory |
| //[thread]needs-sanitizer-thread |
| //[thread]compile-flags: -Zsanitizer=thread --cfg thread |
| |
| #![feature(cfg_sanitize, no_core, lang_items)] |
| #![crate_type="lib"] |
| #![no_core] |
| |
| #[lang="sized"] |
| trait Sized { } |
| #[lang="copy"] |
| trait Copy { } |
| |
| #[cfg(all(sanitize = "address", address))] |
| fn main() {} |
| |
| #[cfg(all(sanitize = "cfi", cfi))] |
| fn main() {} |
| |
| #[cfg(all(sanitize = "kcfi", kcfi))] |
| fn main() {} |
| |
| #[cfg(all(sanitize = "leak", leak))] |
| fn main() {} |
| |
| #[cfg(all(sanitize = "memory", memory))] |
| fn main() {} |
| |
| #[cfg(all(sanitize = "thread", thread))] |
| fn main() {} |
| |
| pub fn check() { |
| main(); |
| } |