Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / CoverageMapping / branch-templates.cpp
blob1fd01218c9038aeae853bee03be5380b47ef88dc
1 // Test that branch regions are generated for conditions in function template
2 // instantiations.
4 // RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++11 -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name branch-templates.cpp %s | FileCheck %s
6 template<typename T>
7 void unused(T x) {
8 return;
11 template<typename T>
12 int func(T x) {
13 if(x)
14 return 0;
15 else
16 return 1;
17 int j = 1;
20 int main() {
21 func<int>(0);
22 func<bool>(true);
23 func<float>(0.0);
24 return 0;
27 // CHECK-LABEL: _Z4funcIiEiT_:
28 // CHECK: Branch,File 0, [[@LINE-15]]:6 -> [[@LINE-15]]:7 = #1, (#0 - #1)
29 // CHECK-LABEL: _Z4funcIbEiT_:
30 // CHECK: Branch,File 0, [[@LINE-17]]:6 -> [[@LINE-17]]:7 = #1, (#0 - #1)
31 // CHECK-LABEL: _Z4funcIfEiT_:
32 // CHECK: Branch,File 0, [[@LINE-19]]:6 -> [[@LINE-19]]:7 = #1, (#0 - #1)