diff options
Diffstat (limited to 'test/CodeGen/sanitize-recover.c')
-rw-r--r-- | test/CodeGen/sanitize-recover.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/CodeGen/sanitize-recover.c b/test/CodeGen/sanitize-recover.c new file mode 100644 index 0000000..3c9c895 --- /dev/null +++ b/test/CodeGen/sanitize-recover.c @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsanitize=unsigned-integer-overflow %s -emit-llvm -o - | FileCheck %s --check-prefix=RECOVER +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsanitize=unsigned-integer-overflow -fno-sanitize-recover %s -emit-llvm -o - | FileCheck %s --check-prefix=ABORT + + +// RECOVER: @test +// ABORT: @test +void test() { + extern volatile unsigned x, y, z; + + // RECOVER: uadd.with.overflow.i32 + // RECOVER: ubsan_handle_add_overflow( + // RECOVER-NOT: unreachable + // ABORT: uadd.with.overflow.i32 + // ABORT: ubsan_handle_add_overflow_abort( + // ABORT: unreachable + x = y + z; +} |