| // 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; |
| } |