diff options
-rw-r--r-- | compiler-rt/test/profile/instrprof-set-filename.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/compiler-rt/test/profile/instrprof-set-filename.c b/compiler-rt/test/profile/instrprof-set-filename.c index 1393da028a1..8a21c528b76 100644 --- a/compiler-rt/test/profile/instrprof-set-filename.c +++ b/compiler-rt/test/profile/instrprof-set-filename.c @@ -35,7 +35,16 @@ // RUN: %clang_profuse=%t.env.profdata -o - -S -emit-llvm %s | FileCheck %s // RUN: rm %t.env.profraw // RUN: rm %t.env.profdata +// 6. Test that __llvm_profile_set_filename is honored by shared libary too. +// RUN: mkdir -p %t.d +// RUN: %clang -fprofile-instr-generate=%t.shared.profraw -fPIC -shared -o %t.d/t.shared %S/Inputs/instrprof-dlopen-func.c +// RUN: %clang_profgen -DCALL_SHARED -o %t.m -O3 -rpath %t.d %t.d/t.shared %s +// RUN: %run %t.m %t.main.profraw +// RUN: llvm-profdata show %t.main.profraw | FileCheck --check-prefix=SHARED %s +#ifdef CALL_SHARED +extern void func(int); +#endif void __llvm_profile_set_filename(const char *); int main(int argc, const char *argv[]) { // CHECK: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}, !prof ![[PD1:[0-9]+]] @@ -44,6 +53,11 @@ int main(int argc, const char *argv[]) { #ifndef NO_API __llvm_profile_set_filename(argv[1]); #endif + +#ifdef CALL_SHARED + func(1); +#endif return 0; } // CHECK: ![[PD1]] = !{!"branch_weights", i32 1, i32 2} +// SHARED: Total functions: 2 |