]> granicus.if.org Git - clang/commitdiff
Add test for D21736.
authorMarcin Koscielnicki <koriakin@0x04.net>
Tue, 22 Nov 2016 20:03:40 +0000 (20:03 +0000)
committerMarcin Koscielnicki <koriakin@0x04.net>
Tue, 22 Nov 2016 20:03:40 +0000 (20:03 +0000)
Differential Revision: http://reviews.llvm.org/D21741

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@287689 91177308-0d34-0410-b5e6-96231b3b80d8

test/Profile/c-indirect-call.c
test/Profile/cxx-indirect-call.cpp

index b0ace37267fd4a611bf5f7040c2c6323a475c85e..92465495a6f6bf92c6ff2ca2266aeeaf35a03e14 100644 (file)
@@ -1,16 +1,22 @@
 // Check the value profiling instrinsics emitted by instrumentation.
 
-// RUN: %clang_cc1 -triple x86_64-apple-macosx10.9 -main-file-name c-indirect-call.c %s -o - -emit-llvm -fprofile-instrument=clang -mllvm -enable-value-profiling | FileCheck %s
+// RUN: %clang_cc1 -triple x86_64-apple-macosx10.9 -main-file-name c-indirect-call.c %s -o - -emit-llvm -fprofile-instrument=clang -mllvm -enable-value-profiling | FileCheck --check-prefix=NOEXT %s
+// RUN: %clang_cc1 -triple s390x-ibm-linux -main-file-name c-indirect-call.c %s -o - -emit-llvm -fprofile-instrument=clang -mllvm -enable-value-profiling | FileCheck --check-prefix=EXT %s
 
 void (*foo)(void);
 
 int main(void) {
-// CHECK:  [[REG1:%[0-9]+]] = load void ()*, void ()** @foo, align 8
-// CHECK-NEXT:  [[REG2:%[0-9]+]] = ptrtoint void ()* [[REG1]] to i64
-// CHECK-NEXT:  call void @__llvm_profile_instrument_target(i64 [[REG2]], i8* bitcast ({{.*}}* @__profd_main to i8*), i32 0)
-// CHECK-NEXT:  call void [[REG1]]()
+// NOEXT:  [[REG1:%[0-9]+]] = load void ()*, void ()** @foo, align 8
+// NOEXT-NEXT:  [[REG2:%[0-9]+]] = ptrtoint void ()* [[REG1]] to i64
+// NOEXT-NEXT:  call void @__llvm_profile_instrument_target(i64 [[REG2]], i8* bitcast ({{.*}}* @__profd_main to i8*), i32 0)
+// NOEXT-NEXT:  call void [[REG1]]()
+// EXT:  [[REG1:%[0-9]+]] = load void ()*, void ()** @foo, align 8
+// EXT-NEXT:  [[REG2:%[0-9]+]] = ptrtoint void ()* [[REG1]] to i64
+// EXT-NEXT:  call void @__llvm_profile_instrument_target(i64 [[REG2]], i8* bitcast ({{.*}}* @__profd_main to i8*), i32 zeroext 0)
+// EXT-NEXT:  call void [[REG1]]()
   foo();
   return 0;
 }
 
-// CHECK: declare void @__llvm_profile_instrument_target(i64, i8*, i32)
+// NOEXT: declare void @__llvm_profile_instrument_target(i64, i8*, i32)
+// EXT: declare void @__llvm_profile_instrument_target(i64, i8*, i32 zeroext)
index f95d1af37c79d269d319f07e536f28ba9d0e1747..1e739226b96ff96f6bddc3adb46e89112e27ca03 100644 (file)
@@ -1,6 +1,6 @@
 // Check the value profiling instrinsics emitted by instrumentation.
 
-// RUN: %clang_cc1 %s -o - -emit-llvm -fprofile-instrument=clang -mllvm -enable-value-profiling -fexceptions -fcxx-exceptions -triple %itanium_abi_triple | FileCheck %s
+// RUN: %clang_cc1 %s -o - -emit-llvm -fprofile-instrument=clang -mllvm -enable-value-profiling -fexceptions -fcxx-exceptions -triple x86_64-apple-macosx10.9 | FileCheck %s
 
 void (*foo) (void);