1*9caa3fbeSZequan Wu // RUN: %clang_cc1 -mllvm -emptyline-comment-coverage=false -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name nestedclass.cpp %s > %tmapping 2e3b04a9fSAlex Lorenz // RUN: FileCheck -input-file %tmapping %s --check-prefix=CHECK-OUTER 3e3b04a9fSAlex Lorenz // RUN: FileCheck -input-file %tmapping %s --check-prefix=CHECK-INNER 4e3b04a9fSAlex Lorenz // RUN: FileCheck -input-file %tmapping %s --check-prefix=CHECK-INNERMOST 534ac9b5eSAlex Lorenz 634ac9b5eSAlex Lorenz struct Test { // CHECK-OUTER: emitTest emitTestTest74da909b2SJustin Bogner void emitTest() { // CHECK-OUTER: File 0, [[@LINE]]:19 -> [[@LINE+2]]:4 = #0 834ac9b5eSAlex Lorenz int i = 0; 934ac9b5eSAlex Lorenz } 1034ac9b5eSAlex Lorenz struct Test2 { // CHECK-INNER: emitTest2 emitTest2Test::Test2114da909b2SJustin Bogner void emitTest2() { // CHECK-INNER: File 0, [[@LINE]]:22 -> [[@LINE+2]]:6 = #0 1234ac9b5eSAlex Lorenz int i = 0; 1334ac9b5eSAlex Lorenz } 1434ac9b5eSAlex Lorenz struct Test3 { // CHECK-INNERMOST: emitTest3 emitTest3Test::Test2::Test3154da909b2SJustin Bogner static void emitTest3() { // CHECK-INNERMOST: File 0, [[@LINE]]:31 -> [[@LINE+2]]:8 = 0 1634ac9b5eSAlex Lorenz int i = 0; 1734ac9b5eSAlex Lorenz } 1834ac9b5eSAlex Lorenz }; 1934ac9b5eSAlex Lorenz }; 2034ac9b5eSAlex Lorenz }; 2134ac9b5eSAlex Lorenz main()2234ac9b5eSAlex Lorenzint main() { 2334ac9b5eSAlex Lorenz Test t; 2434ac9b5eSAlex Lorenz Test::Test2 t2; 2534ac9b5eSAlex Lorenz t.emitTest(); 2634ac9b5eSAlex Lorenz t2.emitTest2(); 2734ac9b5eSAlex Lorenz return 0; 2834ac9b5eSAlex Lorenz } 29