1 // RUN: %clang_cc1 -fprofile-instr-generate -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name preprocessor.c %s | FileCheck %s 2 3 // CHECK: func 4 void func() { // CHECK: File 0, [[@LINE]]:13 -> [[@LINE+5]]:2 = #0 (HasCodeBefore = 0) 5 int i = 0; 6 #ifdef MACRO // CHECK-NEXT: Skipped,File 0, [[@LINE]]:2 -> [[@LINE+2]]:2 = 0 (HasCodeBefore = 0) 7 int x = i; 8 #endif 9 } 10 11 #if 0 12 int g = 0; 13 14 void bar() { } 15 #endif 16 17 // CHECK: main 18 int main() { // CHECK-NEXT: File 0, [[@LINE]]:12 -> [[@LINE+19]]:2 = #0 (HasCodeBefore = 0) 19 int i = 0; 20 #if 0 // CHECK-NEXT: Skipped,File 0, [[@LINE]]:2 -> [[@LINE+4]]:2 = 0 (HasCodeBefore = 0) 21 if(i == 0) { 22 i = 1; 23 } 24 #endif 25 26 #if 1 27 if(i == 0) { // CHECK-NEXT: File 0, [[@LINE]]:14 -> [[@LINE+2]]:4 = #1 (HasCodeBefore = 0) 28 i = 1; 29 } 30 #else // CHECK-NEXT: Skipped,File 0, [[@LINE]]:2 -> [[@LINE+5]]:2 = 0 (HasCodeBefore = 0) 31 if(i == 1) { 32 i = 0; 33 } 34 } 35 #endif 36 return 0; 37 } 38