diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2019-11-15 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2019-11-22 19:32:45 +0100 |
| commit | 9b907032891712c21ef9c8ff20c46cd2b20fcf30 (patch) | |
| tree | 356729cea279c0c86f2b3389ed9ca473057d3a0a /src/test/codegen | |
| parent | 317f68ab10c04719d54265f92784618afed914b6 (diff) | |
| download | rust-9b907032891712c21ef9c8ff20c46cd2b20fcf30.tar.gz rust-9b907032891712c21ef9c8ff20c46cd2b20fcf30.zip | |
Add support for sanitizer recovery
Diffstat (limited to 'src/test/codegen')
| -rw-r--r-- | src/test/codegen/sanitizer-recover.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/test/codegen/sanitizer-recover.rs b/src/test/codegen/sanitizer-recover.rs new file mode 100644 index 00000000000..a292332667b --- /dev/null +++ b/src/test/codegen/sanitizer-recover.rs @@ -0,0 +1,34 @@ +// Verifies that AddressSanitizer and MemorySanitizer +// recovery mode can be enabled with -Zsanitizer-recover. +// +// needs-sanitizer-support +// only-linux +// only-x86_64 +// revisions:ASAN ASAN-RECOVER MSAN MSAN-RECOVER +// +//[ASAN] compile-flags: -Zsanitizer=address +//[ASAN-RECOVER] compile-flags: -Zsanitizer=address -Zsanitizer-recover=address +//[MSAN] compile-flags: -Zsanitizer=memory +//[MSAN-RECOVER] compile-flags: -Zsanitizer=memory -Zsanitizer-recover=memory + +#![crate_type="lib"] + +// ASAN-LABEL: define i32 @penguin( +// ASAN-RECOVER-LABEL: define i32 @penguin( +// MSAN-LABEL: define i32 @penguin( +// MSAN-RECOVER-LABEL: define i32 @penguin( +#[no_mangle] +pub fn penguin(p: &mut i32) -> i32 { + // ASAN: call void @__asan_report_load4(i64 %0) + // ASAN: unreachable + // + // ASAN-RECOVER: call void @__asan_report_load4_noabort( + // ASAN-RECOVER-NOT: unreachable + // + // MSAN: call void @__msan_warning_noreturn() + // MSAN: unreachable + // + // MSAN-RECOVER: call void @__msan_warning() + // MSAN-RECOVER-NOT: unreachable + *p +} |
