xref: /aosp_15_r20/external/clang/test/CoverageMapping/nestedclass.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name nestedclass.cpp %s > %tmapping
2*67e74705SXin Li // RUN: FileCheck -input-file %tmapping %s --check-prefix=CHECK-OUTER
3*67e74705SXin Li // RUN: FileCheck -input-file %tmapping %s --check-prefix=CHECK-INNER
4*67e74705SXin Li // RUN: FileCheck -input-file %tmapping %s --check-prefix=CHECK-INNERMOST
5*67e74705SXin Li 
6*67e74705SXin Li struct Test {                   // CHECK-OUTER: emitTest
emitTestTest7*67e74705SXin Li   void emitTest() {             // CHECK-OUTER: File 0, [[@LINE]]:19 -> [[@LINE+2]]:4 = #0
8*67e74705SXin Li     int i = 0;
9*67e74705SXin Li   }
10*67e74705SXin Li   struct Test2 {                // CHECK-INNER: emitTest2
emitTest2Test::Test211*67e74705SXin Li     void emitTest2() {          // CHECK-INNER: File 0, [[@LINE]]:22 -> [[@LINE+2]]:6 = #0
12*67e74705SXin Li       int i = 0;
13*67e74705SXin Li     }
14*67e74705SXin Li     struct Test3 {              // CHECK-INNERMOST: emitTest3
emitTest3Test::Test2::Test315*67e74705SXin Li       static void emitTest3() { // CHECK-INNERMOST: File 0, [[@LINE]]:31 -> [[@LINE+2]]:8 = 0
16*67e74705SXin Li         int i = 0;
17*67e74705SXin Li       }
18*67e74705SXin Li     };
19*67e74705SXin Li   };
20*67e74705SXin Li };
21*67e74705SXin Li 
main()22*67e74705SXin Li int main() {
23*67e74705SXin Li   Test t;
24*67e74705SXin Li   Test::Test2 t2;
25*67e74705SXin Li   t.emitTest();
26*67e74705SXin Li   t2.emitTest2();
27*67e74705SXin Li   return 0;
28*67e74705SXin Li }
29