zequanwu updated this revision to Diff 277909. zequanwu added a comment. Fix failed test cases with sed to remove comments.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D83592/new/ https://reviews.llvm.org/D83592 Files: clang/lib/CodeGen/CodeGenAction.cpp clang/lib/CodeGen/CoverageMappingGen.cpp clang/lib/CodeGen/CoverageMappingGen.h clang/test/CoverageMapping/break.c clang/test/CoverageMapping/builtinmacro.c clang/test/CoverageMapping/classtemplate.cpp clang/test/CoverageMapping/comment-in-macro.c clang/test/CoverageMapping/continue.c clang/test/CoverageMapping/coroutine.cpp clang/test/CoverageMapping/deferred-region.cpp clang/test/CoverageMapping/if.cpp clang/test/CoverageMapping/includehell.cpp clang/test/CoverageMapping/label.cpp clang/test/CoverageMapping/logical.cpp clang/test/CoverageMapping/loops.cpp clang/test/CoverageMapping/macro-expressions.cpp clang/test/CoverageMapping/macroparams2.c clang/test/CoverageMapping/macros.c clang/test/CoverageMapping/macroscopes.cpp clang/test/CoverageMapping/moremacros.c clang/test/CoverageMapping/objc.m clang/test/CoverageMapping/pr32679.cpp clang/test/CoverageMapping/preprocessor.c clang/test/CoverageMapping/return.c clang/test/CoverageMapping/switch.cpp clang/test/CoverageMapping/switchmacro.c clang/test/CoverageMapping/test.c clang/test/CoverageMapping/trycatch.cpp clang/test/CoverageMapping/unreachable-macro.c clang/test/CoverageMapping/while.c
Index: clang/test/CoverageMapping/while.c =================================================================== --- clang/test/CoverageMapping/while.c +++ clang/test/CoverageMapping/while.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name loops.cpp %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name loops.cpp %T/%basename_t | FileCheck %s // CHECK: main int main() { // CHECK-NEXT: File 0, [[@LINE]]:12 -> [[@LINE+8]]:2 = #0 Index: clang/test/CoverageMapping/unreachable-macro.c =================================================================== --- clang/test/CoverageMapping/unreachable-macro.c +++ clang/test/CoverageMapping/unreachable-macro.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only %T/%basename_t | FileCheck %s #define WHILE while (0) {} Index: clang/test/CoverageMapping/trycatch.cpp =================================================================== --- clang/test/CoverageMapping/trycatch.cpp +++ clang/test/CoverageMapping/trycatch.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++11 -fexceptions -fcxx-exceptions -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name trycatch.cpp %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -triple %itanium_abi_triple -std=c++11 -fexceptions -fcxx-exceptions -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name trycatch.cpp %T/%basename_t | FileCheck %s class Error { }; Index: clang/test/CoverageMapping/test.c =================================================================== --- clang/test/CoverageMapping/test.c +++ clang/test/CoverageMapping/test.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name test.c %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name test.c %T/%basename_t | FileCheck %s void bar(); static void static_func(); Index: clang/test/CoverageMapping/switchmacro.c =================================================================== --- clang/test/CoverageMapping/switchmacro.c +++ clang/test/CoverageMapping/switchmacro.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name switchmacro.c %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name switchmacro.c %T/%basename_t | FileCheck %s #define FOO(x) (void)x Index: clang/test/CoverageMapping/switch.cpp =================================================================== --- clang/test/CoverageMapping/switch.cpp +++ clang/test/CoverageMapping/switch.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -std=c++1z -triple %itanium_abi_triple -main-file-name switch.cpp %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -std=c++1z -triple %itanium_abi_triple -main-file-name switch.cpp %T/%basename_t | FileCheck %s // CHECK: foo void foo(int i) { // CHECK-NEXT: File 0, [[@LINE]]:17 -> [[@LINE+8]]:2 = #0 Index: clang/test/CoverageMapping/return.c =================================================================== --- clang/test/CoverageMapping/return.c +++ clang/test/CoverageMapping/return.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name return.c %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name return.c %T/%basename_t | FileCheck %s // CHECK: func void func() { // CHECK: File 0, [[@LINE]]:13 -> [[@LINE+3]]:2 = #0 Index: clang/test/CoverageMapping/preprocessor.c =================================================================== --- clang/test/CoverageMapping/preprocessor.c +++ clang/test/CoverageMapping/preprocessor.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name preprocessor.c %s | FileCheck %s +// RUN: sed 's/[ \t]*\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name preprocessor.c %T/%basename_t | FileCheck %s // CHECK: func void func() { // CHECK: File 0, [[@LINE]]:13 -> [[@LINE+5]]:2 = #0 @@ -11,7 +11,7 @@ // CHECK: main int main() { // CHECK-NEXT: File 0, [[@LINE]]:12 -> {{[0-9]+}}:2 = #0 int i = 0; -# if 0 // CHECK-NEXT: Skipped,File 0, [[@LINE]]:1 -> [[@LINE+4]]:29 = 0 +# if 0 // CHECK-NEXT: Skipped,File 0, [[@LINE]]:1 -> [[@LINE+4]]:9 = 0 if(i == 0) { i = 1; } @@ -29,7 +29,7 @@ } #endif - // CHECK-NEXT: Skipped,File 0, [[@LINE+1]]:1 -> [[@LINE+4]]:24 + // CHECK-NEXT: Skipped,File 0, [[@LINE+1]]:1 -> [[@LINE+4]]:8 #\ if 0 #\ @@ -59,7 +59,7 @@ #\ endif - // CHECK-NEXT: Skipped,File 0, [[@LINE+1]]:1 -> [[@LINE+6]]:26 + // CHECK-NEXT: Skipped,File 0, [[@LINE+1]]:1 -> [[@LINE+6]]:10 #\ ifdef NOT_DEFINED #\ Index: clang/test/CoverageMapping/pr32679.cpp =================================================================== --- clang/test/CoverageMapping/pr32679.cpp +++ clang/test/CoverageMapping/pr32679.cpp @@ -1,5 +1,6 @@ -// RUN: %clang_cc1 -cc1 -triple i686-pc-windows-msvc19.0.0 -emit-obj -fprofile-instrument=clang -std=c++14 -fdelayed-template-parsing -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name pr32679.cpp -o - %s | FileCheck %s -check-prefix=MSABI -implicit-check-not=f2 -// RUN: %clang_cc1 -cc1 -triple %itanium_abi_triple -emit-obj -fprofile-instrument=clang -std=c++14 -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name pr32679.cpp -o - %s | FileCheck %s -check-prefix=ITANIUM -implicit-check-not=f2 +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t +// RUN: %clang_cc1 -cc1 -triple i686-pc-windows-msvc19.0.0 -emit-obj -fprofile-instrument=clang -std=c++14 -fdelayed-template-parsing -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name pr32679.cpp -o - %T/%basename_t | FileCheck %s -check-prefix=MSABI -implicit-check-not=f2 +// RUN: %clang_cc1 -cc1 -triple %itanium_abi_triple -emit-obj -fprofile-instrument=clang -std=c++14 -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name pr32679.cpp -o - %T/%basename_t | FileCheck %s -check-prefix=ITANIUM -implicit-check-not=f2 template <typename T, int S1> struct CreateSpecialization; Index: clang/test/CoverageMapping/objc.m =================================================================== --- clang/test/CoverageMapping/objc.m +++ clang/test/CoverageMapping/objc.m @@ -1,4 +1,4 @@ -// 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 +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %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 %T/%basename_t | FileCheck %s @interface A - (void)bork:(int)msg; Index: clang/test/CoverageMapping/moremacros.c =================================================================== --- clang/test/CoverageMapping/moremacros.c +++ clang/test/CoverageMapping/moremacros.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name macro-expansion.c %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name macro-expansion.c %T/%basename_t | FileCheck %s #define LBRAC { #define RBRAC } Index: clang/test/CoverageMapping/macroscopes.cpp =================================================================== --- clang/test/CoverageMapping/macroscopes.cpp +++ clang/test/CoverageMapping/macroscopes.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name macroscopes.cpp %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name macroscopes.cpp %T/%basename_t | FileCheck %s #define starts_a_scope for (int i = 0; i < 2; ++i) { Index: clang/test/CoverageMapping/macros.c =================================================================== --- clang/test/CoverageMapping/macros.c +++ clang/test/CoverageMapping/macros.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name macros.c %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name macros.c %T/%basename_t | FileCheck %s #define MACRO return; bar() #define MACRO_2 bar() Index: clang/test/CoverageMapping/macroparams2.c =================================================================== --- clang/test/CoverageMapping/macroparams2.c +++ clang/test/CoverageMapping/macroparams2.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name macroparams2.c %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name macroparams2.c %T/%basename_t | FileCheck %s #define MACRO(REFS, CALLS) (4 * (CALLS) < (REFS)) Index: clang/test/CoverageMapping/macro-expressions.cpp =================================================================== --- clang/test/CoverageMapping/macro-expressions.cpp +++ clang/test/CoverageMapping/macro-expressions.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++11 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name macro-expressions.cpp -w %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -std=c++11 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name macro-expressions.cpp -w %T/%basename_t | FileCheck %s #define EXPR(x) (x) #define NEXPR(x) (!x) Index: clang/test/CoverageMapping/loops.cpp =================================================================== --- clang/test/CoverageMapping/loops.cpp +++ clang/test/CoverageMapping/loops.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++11 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name loops.cpp %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -std=c++11 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name loops.cpp %T/%basename_t| FileCheck %s // CHECK: rangedFor void rangedFor() { // CHECK-NEXT: File 0, [[@LINE]]:18 -> {{[0-9]+}}:2 = #0 Index: clang/test/CoverageMapping/logical.cpp =================================================================== --- clang/test/CoverageMapping/logical.cpp +++ clang/test/CoverageMapping/logical.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name logical.cpp %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name logical.cpp %T/%basename_t| FileCheck %s int main() { // CHECK: File 0, [[@LINE]]:12 -> [[@LINE+15]]:2 = #0 bool bt = true; Index: clang/test/CoverageMapping/label.cpp =================================================================== --- clang/test/CoverageMapping/label.cpp +++ clang/test/CoverageMapping/label.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name label.cpp %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name label.cpp %T/%basename_t | FileCheck %s // CHECK: func void func() { // CHECK-NEXT: File 0, [[@LINE]]:13 -> {{[0-9]+}}:2 = #0 Index: clang/test/CoverageMapping/includehell.cpp =================================================================== --- clang/test/CoverageMapping/includehell.cpp +++ clang/test/CoverageMapping/includehell.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name includehell.cpp %s > %tmapping +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -I/%S -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name includehell.cpp %T/%basename_t > %tmapping int main() { int x = 0; @@ -51,6 +51,7 @@ // CHECK-START: File [[START3]], 4:29 -> 5:1 = #9 // CHECK-CODE: File [[CODE1:[0-9]]], 1:1 -> 14:1 = #1 +// CHECK-CODE: Skipped,File [[CODE1]], 1:1 -> 1:41 = 0 // CHECK-CODE-NEXT: File [[CODE1]], 4:5 -> 4:11 = #1 // CHECK-CODE: File [[CODE1]], 4:13 -> 6:2 = #2 // CHECK-CODE: File [[CODE1]], 6:8 -> 8:2 = (#1 - #2) @@ -58,6 +59,7 @@ // CHECK-CODE: File [[CODE1]], 9:11 -> 11:2 = #3 // CHECK-CODE: File [[CODE1]], 11:8 -> 13:2 = (#1 - #3) // CHECK-CODE: File [[CODE2:[0-9]]], 1:1 -> 14:1 = #5 +// CHECK-CODE: Skipped,File [[CODE2]], 1:1 -> 1:41 = 0 // CHECK-CODE-NEXT: File [[CODE2]], 4:5 -> 4:11 = #5 // CHECK-CODE: File [[CODE2]], 4:13 -> 6:2 = #6 // CHECK-CODE: File [[CODE2]], 6:8 -> 8:2 = (#5 - #6) Index: clang/test/CoverageMapping/if.cpp =================================================================== --- clang/test/CoverageMapping/if.cpp +++ clang/test/CoverageMapping/if.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -std=c++1z -triple %itanium_abi_triple -main-file-name if.cpp %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -std=c++1z -triple %itanium_abi_triple -main-file-name if.cpp %T/%basename_t | FileCheck %s int nop() { return 0; } Index: clang/test/CoverageMapping/deferred-region.cpp =================================================================== --- clang/test/CoverageMapping/deferred-region.cpp +++ clang/test/CoverageMapping/deferred-region.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++11 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -fexceptions -fcxx-exceptions -emit-llvm-only -triple %itanium_abi_triple -main-file-name deferred-region.cpp -I %S/Inputs %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -std=c++11 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -fexceptions -fcxx-exceptions -emit-llvm-only -triple %itanium_abi_triple -main-file-name deferred-region.cpp -I %S/Inputs %T/%basename_t | FileCheck %s #define IF if #define STMT(S) S Index: clang/test/CoverageMapping/coroutine.cpp =================================================================== --- clang/test/CoverageMapping/coroutine.cpp +++ clang/test/CoverageMapping/coroutine.cpp @@ -1,6 +1,6 @@ // fixme: the following line is added to cleanup bots, will be removed in weeks. // RUN: rm -f %S/coroutine.ll -// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fcoroutines-ts -std=c++14 -emit-llvm -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping %s -o - | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -triple x86_64-unknown-linux-gnu -fcoroutines-ts -std=c++14 -emit-llvm -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping %T/%basename_t -o - | FileCheck %s namespace std::experimental { template <typename... T> Index: clang/test/CoverageMapping/continue.c =================================================================== --- clang/test/CoverageMapping/continue.c +++ clang/test/CoverageMapping/continue.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name continue.c %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name continue.c %T/%basename_t | FileCheck %s int main() { // CHECK: File 0, [[@LINE]]:12 -> [[@LINE+21]]:2 = #0 int j = 0; // CHECK-NEXT: File 0, [[@LINE+2]]:18 -> [[@LINE+2]]:24 = (#0 + #1) Index: clang/test/CoverageMapping/comment-in-macro.c =================================================================== --- clang/test/CoverageMapping/comment-in-macro.c +++ clang/test/CoverageMapping/comment-in-macro.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only %T/%basename_t | FileCheck %s #define x1 "" // ... #define x2 return 0 Index: clang/test/CoverageMapping/classtemplate.cpp =================================================================== --- clang/test/CoverageMapping/classtemplate.cpp +++ clang/test/CoverageMapping/classtemplate.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple %itanium_abi_triple -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name classtemplate.cpp %s > %tmapping +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -triple %itanium_abi_triple -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name classtemplate.cpp %T/%basename_t > %tmapping // RUN: FileCheck -input-file %tmapping %s --check-prefix=CHECK-CONSTRUCTOR // RUN: FileCheck -input-file %tmapping %s --check-prefix=CHECK-GETTER // RUN: FileCheck -input-file %tmapping %s --check-prefix=CHECK-SETTER Index: clang/test/CoverageMapping/builtinmacro.c =================================================================== --- clang/test/CoverageMapping/builtinmacro.c +++ clang/test/CoverageMapping/builtinmacro.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name builtinmacro.c %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name builtinmacro.c %T/%basename_t | FileCheck %s // Test the coverage mapping generation for built-in macroes. Index: clang/test/CoverageMapping/break.c =================================================================== --- clang/test/CoverageMapping/break.c +++ clang/test/CoverageMapping/break.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name break.c %s | FileCheck %s +// RUN: sed 's/\/\/.*//' %s > %T/%basename_t && %clang_cc1 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name break.c %T/%basename_t | FileCheck %s int main() { // CHECK: File 0, [[@LINE]]:12 -> {{[0-9]+}}:2 = #0 int cnt = 0; // CHECK-NEXT: File 0, [[@LINE+1]]:9 -> [[@LINE+1]]:18 = #0 Index: clang/lib/CodeGen/CoverageMappingGen.h =================================================================== --- clang/lib/CodeGen/CoverageMappingGen.h +++ clang/lib/CodeGen/CoverageMappingGen.h @@ -16,6 +16,7 @@ #include "clang/Basic/LLVM.h" #include "clang/Basic/SourceLocation.h" #include "clang/Lex/PPCallbacks.h" +#include "clang/Lex/Preprocessor.h" #include "llvm/ADT/DenseMap.h" #include "llvm/IR/GlobalValue.h" #include "llvm/Support/raw_ostream.h" @@ -32,12 +33,14 @@ /// Stores additional source code information like skipped ranges which /// is required by the coverage mapping generator and is obtained from /// the preprocessor. -class CoverageSourceInfo : public PPCallbacks { +class CoverageSourceInfo : public PPCallbacks, public CommentHandler { std::vector<SourceRange> SkippedRanges; public: ArrayRef<SourceRange> getSkippedRanges() const { return SkippedRanges; } void SourceRangeSkipped(SourceRange Range, SourceLocation EndifLoc) override; + + bool HandleComment(Preprocessor &PP, SourceRange Range) override; }; namespace CodeGen { @@ -66,6 +69,8 @@ uint64_t FilenamesRef); public: + static CoverageSourceInfo *setUpCoverageCallbacks(Preprocessor &PP); + CoverageMappingModuleGen(CodeGenModule &CGM, CoverageSourceInfo &SourceInfo) : CGM(CGM), SourceInfo(SourceInfo) {} Index: clang/lib/CodeGen/CoverageMappingGen.cpp =================================================================== --- clang/lib/CodeGen/CoverageMappingGen.cpp +++ clang/lib/CodeGen/CoverageMappingGen.cpp @@ -35,10 +35,23 @@ using namespace CodeGen; using namespace llvm::coverage; +CoverageSourceInfo * +CoverageMappingModuleGen::setUpCoverageCallbacks(Preprocessor &PP) { + CoverageSourceInfo *CoverageInfo = new CoverageSourceInfo; + PP.addPPCallbacks(std::unique_ptr<PPCallbacks>(CoverageInfo)); + PP.addCommentHandler(CoverageInfo); + return CoverageInfo; +} + void CoverageSourceInfo::SourceRangeSkipped(SourceRange Range, SourceLocation) { SkippedRanges.push_back(Range); } +bool CoverageSourceInfo::HandleComment(Preprocessor &, SourceRange Range) { + SkippedRanges.push_back(Range); + return false; +} + namespace { /// A region of source code that can be mapped to a counter. Index: clang/lib/CodeGen/CodeGenAction.cpp =================================================================== --- clang/lib/CodeGen/CodeGenAction.cpp +++ clang/lib/CodeGen/CodeGenAction.cpp @@ -990,11 +990,9 @@ CoverageSourceInfo *CoverageInfo = nullptr; // Add the preprocessor callback only when the coverage mapping is generated. - if (CI.getCodeGenOpts().CoverageMapping) { - CoverageInfo = new CoverageSourceInfo; - CI.getPreprocessor().addPPCallbacks( - std::unique_ptr<PPCallbacks>(CoverageInfo)); - } + if (CI.getCodeGenOpts().CoverageMapping) + CoverageInfo = CodeGen::CoverageMappingModuleGen::setUpCoverageCallbacks( + CI.getPreprocessor()); std::unique_ptr<BackendConsumer> Result(new BackendConsumer( BA, CI.getDiagnostics(), CI.getHeaderSearchOpts(),
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits