diff options
Diffstat (limited to 'clang/test/CodeGen')
-rw-r--r-- | clang/test/CodeGen/complex-init-list.c | 4 | ||||
-rw-r--r-- | clang/test/CodeGen/ubsan-conditional.c | 10 |
2 files changed, 12 insertions, 2 deletions
diff --git a/clang/test/CodeGen/complex-init-list.c b/clang/test/CodeGen/complex-init-list.c index bc38e2caf21..fa266b26bb9 100644 --- a/clang/test/CodeGen/complex-init-list.c +++ b/clang/test/CodeGen/complex-init-list.c @@ -4,8 +4,8 @@ // of a complex number individually using an initialization list. (There is a // extensive description and test in test/Sema/complex-init-list.c.) -_Complex float x = { 1.0f, 1.0f/0.0f }; -// CHECK: @x = global { float, float } { float 1.000000e+00, float 0x7FF0000000000000 }, align 4 +_Complex float x = { 1.0f, -1.0f }; +// CHECK: @x = global { float, float } { float 1.000000e+00, float -1.000000e+00 }, align 4 _Complex float f(float x, float y) { _Complex float z = { x, y }; return z; } // CHECK-LABEL: define <2 x float> @f diff --git a/clang/test/CodeGen/ubsan-conditional.c b/clang/test/CodeGen/ubsan-conditional.c new file mode 100644 index 00000000000..7f63b39a230 --- /dev/null +++ b/clang/test/CodeGen/ubsan-conditional.c @@ -0,0 +1,10 @@ +// RUN: %clang_cc1 %s -emit-llvm -fsanitize=float-divide-by-zero -o - | FileCheck %s + +_Bool b; +// CHECK: @f( +double f() { + // CHECK: %[[B:.*]] = load {{.*}} @b + // CHECK: %[[COND:.*]] = trunc {{.*}} %[[B]] to i1 + // CHECK: br i1 %[[COND]] + return b ? 0.0 / 0.0 : 0.0; +} |