1// XFAIL: target={{.*}}-aix{{.*}}
2// RUN: %clangxx_profgen -fcoverage-mapping %S/Inputs/instrprof-visibility-helper.cpp -o %t %s
3// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t
4// RUN: llvm-profdata merge %t.profraw -o %t.profdata
5// RUN: llvm-profdata show --all-functions %t.profraw | FileCheck -allow-deprecated-dag-overlap %s --check-prefix=PROFILE
6// RUN: llvm-cov show %t -instr-profile=%t.profdata | FileCheck -allow-deprecated-dag-overlap %s --check-prefix=COV
7
8namespace {
9#define NO_WEAK
10#define NO_EXTERN
11#include "instrprof-visibility-kinds.inc"
12#undef NO_EXTERN
13#undef NO_WEAK
14}
15
16namespace N1 {
17#include "instrprof-visibility-kinds.inc"
18}
19
20int main() {
21 call();
22 N1::call();
23 return 0;
24}
25
26// PROFILE-DAG: _ZN2N12f1Ev
27// PROFILE-DAG: _ZN2N12f2Ev
28// PROFILE-DAG: _ZN2N12f3Ev
29// PROFILE-DAG: _ZN2N12f4Ev
30// PROFILE-DAG: _ZN2N12f5Ev
31// PROFILE-DAG: _ZN2N12f6Ev
32// PROFILE-DAG: _ZN2N12f7Ev
33// PROFILE-DAG: _ZN2N14callEv
34// PROFILE-DAG: main
35// PROFILE-DAG: instrprof-visibility.cpp:_ZN12_GLOBAL__N_14callEv
36// PROFILE-DAG: instrprof-visibility.cpp:_ZN12_GLOBAL__N_12f1Ev
37// PROFILE-DAG: instrprof-visibility.cpp:_ZN12_GLOBAL__N_12f3Ev
38// PROFILE-DAG: instrprof-visibility.cpp:_ZN12_GLOBAL__N_12f5Ev
39// PROFILE-DAG: instrprof-visibility.cpp:_ZN12_GLOBAL__N_12f6Ev
40// PROFILE-DAG: instrprof-visibility.cpp:_ZN12_GLOBAL__N_12f7Ev
41// PROFILE-DAG: Total functions: 15
42
43// COV-DAG: instrprof-visibility-helper.cpp
44
45// COV-DAG: instrprof-visibility-kinds.inc
46
47// COV-DAG: _ZN2N12f1Ev
48// COV-DAG: instrprof-visibility.cpp:_ZN12_GLOBAL__N_12f1Ev
49// COV-DAG: instrprof-visibility.cpp:_ZN12_GLOBAL__N_12f3Ev
50// COV-DAG: _ZN2N12f3Ev
51// COV-DAG: instrprof-visibility.cpp:_ZN12_GLOBAL__N_12f5Ev
52// COV-DAG: _ZN2N12f5Ev
53// COV-DAG: _ZN2N12f6Ev
54// COV-DAG: instrprof-visibility.cpp:_ZN12_GLOBAL__N_12f6Ev
55// COV-DAG: instrprof-visibility.cpp:_ZN12_GLOBAL__N_12f7Ev
56// COV-DAG: _ZN2N12f7Ev
57
58// --- Check coverage for functions in the anonymous namespace.
59// COV-DAG: instrprof-visibility.cpp:_ZN12_GLOBAL__N_14callEv
60// COV-DAG: [[CALL:[0-9]+]]|{{ *}}1|void call() {
61// COV-DAG: {{.*}}|{{ *}}1| f1();
62// COV-DAG: {{.*}}|{{ *}}1|#ifndef NO_WEAK
63// COV-DAG: {{.*}}|{{ *}} | f2();
64// COV-DAG: {{.*}}|{{ *}} |#endif
65// COV-DAG: {{.*}}|{{ *}}1| f3();
66// COV-DAG: {{.*}}|{{ *}}1|#ifndef NO_EXTERN
67// COV-DAG: {{.*}}|{{ *}} | f4();
68// COV-DAG: {{.*}}|{{ *}} |#endif
69// COV-DAG: {{.*}}|{{ *}}1| f5();
70// COV-DAG: {{.*}}|{{ *}}1| f6();
71// COV-DAG: {{.*}}|{{ *}}1| f7();
72// COV-DAG: {{.*}}|{{ *}}1|}
73
74// --- Check coverage for functions in namespace N1.
75// COV-DAG: _ZN2N14callEv
76// COV-DAG: {{ *}}[[CALL]]|{{ *}}1|void call() {
77// COV-DAG: {{.*}}|{{ *}}1| f1();
78// COV-DAG: {{.*}}|{{ *}}1|#ifndef NO_WEAK
79// COV-DAG: {{.*}}|{{ *}}1| f2();
80// COV-DAG: {{.*}}|{{ *}}1|#endif
81// COV-DAG: {{.*}}|{{ *}}1| f3();
82// COV-DAG: {{.*}}|{{ *}}1|#ifndef NO_EXTERN
83// COV-DAG: {{.*}}|{{ *}}1| f4();
84// COV-DAG: {{.*}}|{{ *}}1|#endif
85// COV-DAG: {{.*}}|{{ *}}1| f5();
86// COV-DAG: {{.*}}|{{ *}}1| f6();
87// COV-DAG: {{.*}}|{{ *}}1| f7();
88// COV-DAG: {{.*}}|{{ *}}1|}
89
90// COV-DAG: instrprof-visibility.cpp
91

Provided by KDAB

Privacy Policy
Improve your Profiling and Debugging skills
Find out more

source code of compiler-rt/test/profile/Posix/instrprof-visibility.cpp