diff options
Diffstat (limited to 'test/CodeGen/cfi-icall.c')
-rw-r--r-- | test/CodeGen/cfi-icall.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/test/CodeGen/cfi-icall.c b/test/CodeGen/cfi-icall.c index d6cebef49a147..ed34f4f44beb6 100644 --- a/test/CodeGen/cfi-icall.c +++ b/test/CodeGen/cfi-icall.c @@ -1,20 +1,24 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-linux -fsanitize=cfi-icall -fsanitize-trap=cfi-icall -emit-llvm -o - %s | FileCheck --check-prefix=ITANIUM %s -// RUN: %clang_cc1 -triple x86_64-pc-windows-msvc -fsanitize=cfi-icall -fsanitize-trap=cfi-icall -emit-llvm -o - %s | FileCheck --check-prefix=MS %s +// RUN: %clang_cc1 -triple x86_64-unknown-linux -fsanitize=cfi-icall -fsanitize-trap=cfi-icall -emit-llvm -o - %s | FileCheck --check-prefix=CHECK --check-prefix=ITANIUM %s +// RUN: %clang_cc1 -triple x86_64-pc-windows-msvc -fsanitize=cfi-icall -fsanitize-trap=cfi-icall -emit-llvm -o - %s | FileCheck --check-prefix=CHECK --check-prefix=MS %s // Tests that we assign appropriate identifiers to unprototyped functions. +// CHECK: define void @f({{.*}} !type [[TVOID:![0-9]+]] void f() { } void xf(); +// CHECK: define void @g({{.*}} !type [[TINT:![0-9]+]] void g(int b) { void (*fp)() = b ? f : xf; - // ITANIUM: call i1 @llvm.bitset.test(i8* {{.*}}, metadata !"_ZTSFvE") + // ITANIUM: call i1 @llvm.type.test(i8* {{.*}}, metadata !"_ZTSFvE") fp(); } -// ITANIUM-DAG: !{!"_ZTSFvE", void ()* @f, i64 0} -// ITANIUM-DAG: !{!"_ZTSFvE", void (...)* @xf, i64 0} -// MS-DAG: !{!"?6AX@Z", void ()* @f, i64 0} -// MS-DAG: !{!"?6AX@Z", void (...)* @xf, i64 0} +// CHECK: declare !type [[TVOID:![0-9]+]] void @xf({{.*}} + +// ITANIUM-DAG: [[TVOID]] = !{i64 0, !"_ZTSFvE"} +// ITANIUM-DAG: [[TINT]] = !{i64 0, !"_ZTSFviE"} +// MS-DAG: [[TVOID]] = !{i64 0, !"?6AX@Z"} +// MS-DAG: [[TINT]] = !{i64 0, !"?6AXH@Z"} |