blob: 6cbddebe9fcd5702175aa9138c84388e91afeb6b [file] [log] [blame]
Rong Xu9837ef52016-02-04 18:39:09 +00001// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name nestedclass.cpp %s > %tmapping
Alex Lorenze3b04a92014-08-20 17:29:47 +00002// RUN: FileCheck -input-file %tmapping %s --check-prefix=CHECK-OUTER
3// RUN: FileCheck -input-file %tmapping %s --check-prefix=CHECK-INNER
4// RUN: FileCheck -input-file %tmapping %s --check-prefix=CHECK-INNERMOST
Alex Lorenz34ac9b52014-08-19 17:32:30 +00005
6struct Test { // CHECK-OUTER: emitTest
Justin Bogner4da909b2015-02-03 21:35:49 +00007 void emitTest() { // CHECK-OUTER: File 0, [[@LINE]]:19 -> [[@LINE+2]]:4 = #0
Alex Lorenz34ac9b52014-08-19 17:32:30 +00008 int i = 0;
9 }
10 struct Test2 { // CHECK-INNER: emitTest2
Justin Bogner4da909b2015-02-03 21:35:49 +000011 void emitTest2() { // CHECK-INNER: File 0, [[@LINE]]:22 -> [[@LINE+2]]:6 = #0
Alex Lorenz34ac9b52014-08-19 17:32:30 +000012 int i = 0;
13 }
14 struct Test3 { // CHECK-INNERMOST: emitTest3
Justin Bogner4da909b2015-02-03 21:35:49 +000015 static void emitTest3() { // CHECK-INNERMOST: File 0, [[@LINE]]:31 -> [[@LINE+2]]:8 = 0
Alex Lorenz34ac9b52014-08-19 17:32:30 +000016 int i = 0;
17 }
18 };
19 };
20};
21
22int main() {
23 Test t;
24 Test::Test2 t2;
25 t.emitTest();
26 t2.emitTest2();
27 return 0;
28}