diff options
author | Vedant Kumar <vsk@apple.com> | 2017-11-09 02:33:40 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2017-11-09 02:33:40 +0000 |
commit | f9a0d44eea28ada1adf75e5e63274055fccd65ab (patch) | |
tree | c6b6444c5496a74345c70f3f8e373b493540687d /clang/test | |
parent | 8046d22a36eeed2bf38d17006daf486acf520f7e (diff) | |
download | bcm5719-llvm-f9a0d44eea28ada1adf75e5e63274055fccd65ab.tar.gz bcm5719-llvm-f9a0d44eea28ada1adf75e5e63274055fccd65ab.zip |
[Coverage] Emit deferred regions in headers
There are some limitations with emitting regions in macro expansions
because we don't gather file IDs within the expansions. Fix the check
that prevents us from emitting deferred regions in expansions to make an
exception for headers, which is something we can handle.
rdar://35373009
llvm-svn: 317760
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/CoverageMapping/Inputs/deferred-region-helper.h | 5 | ||||
-rw-r--r-- | clang/test/CoverageMapping/deferred-region.cpp | 13 |
2 files changed, 17 insertions, 1 deletions
diff --git a/clang/test/CoverageMapping/Inputs/deferred-region-helper.h b/clang/test/CoverageMapping/Inputs/deferred-region-helper.h new file mode 100644 index 00000000000..c3e5c16e32a --- /dev/null +++ b/clang/test/CoverageMapping/Inputs/deferred-region-helper.h @@ -0,0 +1,5 @@ +void included_func() { + if (false) + return; + return; +} diff --git a/clang/test/CoverageMapping/deferred-region.cpp b/clang/test/CoverageMapping/deferred-region.cpp index 3504588a6c3..5a104f77897 100644 --- a/clang/test/CoverageMapping/deferred-region.cpp +++ b/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 %s | FileCheck %s +// 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 #define IF if #define STMT(S) S @@ -170,6 +170,16 @@ out: return; // CHECK: Gap,File 0, [[@LINE]]:8 -> [[@LINE+1]]:2 = 0 } +#include "deferred-region-helper.h" +// CHECK-LABEL: _Z13included_funcv: +// CHECK: Gap,File 0, 2:13 -> 3:5 = #1 +// CHECK: Gap,File 0, 3:11 -> 4:3 = (#0 - #1) + +// CHECK-LABEL: _Z7includev: +void include() { + included_func(); +} + int main() { foo(0); foo(1); @@ -189,5 +199,6 @@ int main() { for_loop(); while_loop(); gotos(); + include(); return 0; } |