blob: 55c7545370cc52e7571f6c2d267e055f360842a2 [file] [log] [blame]
Vedant Kumar3ec213e2017-02-25 07:05:41 +00001// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name objc.m -triple x86_64-apple-darwin -fobjc-runtime=macosx-fragile-10.5 -w %s | FileCheck %s
Alex Lorenz01a0d062014-08-20 17:10:56 +00002
3@interface A
4- (void)bork:(int)msg;
5@end
6
7 // CHECK: func
Justin Bogner4da909b2015-02-03 21:35:49 +00008void func(A *a) { // CHECK-NEXT: File 0, [[@LINE]]:17 -> [[@LINE+3]]:2 = #0
Justin Bogner91f2e3c2015-02-19 03:10:30 +00009 if (a) // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:8 = #0
Justin Bogner4da909b2015-02-03 21:35:49 +000010 [a bork: 20 ]; // CHECK-NEXT: File 0, [[@LINE]]:5 -> [[@LINE]]:20 = #1
Alex Lorenz01a0d062014-08-20 17:10:56 +000011}
Alex Lorenzfdd769e2014-08-20 17:11:53 +000012
13@interface NSArray
14+ (NSArray*) arrayWithObjects: (id) first, ...;
15- (unsigned) count;
16@end
17
18 // CHECK: func2
Justin Bogner91f2e3c2015-02-19 03:10:30 +000019void func2(NSArray *array) { // CHECK-NEXT: File 0, [[@LINE]]:28 -> {{[0-9]+}}:2 = #0
Alex Lorenzfdd769e2014-08-20 17:11:53 +000020 int i = 0;
Justin Bogner91f2e3c2015-02-19 03:10:30 +000021 for (NSArray *x in array) { // CHECK-NEXT: File 0, [[@LINE]]:29 -> [[@LINE+7]]:4 = #1
22 // CHECK-NEXT: File 0, [[@LINE+1]]:9 -> [[@LINE+1]]:10 = #1
Justin Bogner4da909b2015-02-03 21:35:49 +000023 if (x) { // CHECK-NEXT: File 0, [[@LINE]]:12 -> [[@LINE+2]]:6 = #2
Alex Lorenzfdd769e2014-08-20 17:11:53 +000024 i = 1;
Justin Bogner4da909b2015-02-03 21:35:49 +000025 } else { // CHECK-NEXT: File 0, [[@LINE]]:12 -> [[@LINE+2]]:6 = (#1 - #2)
Alex Lorenzfdd769e2014-08-20 17:11:53 +000026 i = -1;
27 }
28 }
29 i = 0;
30}