diff options
Diffstat (limited to 'compiler-rt/test/xray/TestCases/Linux/pic_test.cc')
-rw-r--r-- | compiler-rt/test/xray/TestCases/Linux/pic_test.cc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/compiler-rt/test/xray/TestCases/Linux/pic_test.cc b/compiler-rt/test/xray/TestCases/Linux/pic_test.cc new file mode 100644 index 00000000000..004f6da2f43 --- /dev/null +++ b/compiler-rt/test/xray/TestCases/Linux/pic_test.cc @@ -0,0 +1,33 @@ +// Test to check if we handle pic code properly. + +// RUN: %clangxx_xray -fxray-instrument -std=c++11 -fpic %s -o %t +// RUN: XRAY_OPTIONS="verbosity=1 xray_logfile_base=pic-test-logging-" %run %t 2>&1 | FileCheck %s +// After all that, clean up the output xray log. +// +// RUN: rm pic-test-logging-* + +#include <cstdio> + +[[clang::xray_always_instrument]] +unsigned short foo (unsigned b); + +[[clang::xray_always_instrument]] +unsigned short bar (unsigned short a) +{ + printf("bar() is always instrumented!\n"); + return foo(a); +} + +unsigned short foo (unsigned b) +{ + printf("foo() is always instrumented!\n"); + return b + b + 5; +} + +int main () +{ + // CHECK: XRay: Log file in 'pic-test-logging-{{.*}}' + bar(10); + // CHECK: bar() is always instrumented! + // CHECK-NEXT: foo() is always instrumented! +} |