showTemplateInstantiations.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -filename-equivalence %s | FileCheck -check-prefix=CHECK -check-prefix=ALL %s
  2. // RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -filename-equivalence -name=_Z4funcIbEiT_ %s | FileCheck -check-prefix=CHECK -check-prefix=FILTER %s
  3. // before coverage // WHOLE-FILE: | [[@LINE]]|// before
  4. // FILTER-NOT: | [[@LINE-1]]|// before
  5. template<typename T> // ALL: | [[@LINE]]|template<typename T>
  6. int func(T x) { // ALL-NEXT: 2| [[@LINE]]|int func(T x) {
  7. if(x) // ALL-NEXT: 2| [[@LINE]]| if(x)
  8. return 0; // ALL-NEXT: 1| [[@LINE]]| return 0;
  9. else // ALL-NEXT: 1| [[@LINE]]| else
  10. return 1; // ALL-NEXT: 1| [[@LINE]]| return 1;
  11. int j = 1; // ALL-NEXT: 0| [[@LINE]]| int j = 1;
  12. } // ALL-NEXT: 1| [[@LINE]]|}
  13. // CHECK: {{^ *(\| )?}}_Z4funcIbEiT_:
  14. // CHECK-NEXT: 1| [[@LINE-9]]|int func(T x) {
  15. // CHECK-NEXT: 1| [[@LINE-9]]| if(x)
  16. // CHECK-NEXT: 1| [[@LINE-9]]| return 0;
  17. // CHECK-NEXT: 1| [[@LINE-9]]| else
  18. // CHECK-NEXT: 0| [[@LINE-9]]| return 1;
  19. // CHECK-NEXT: 0| [[@LINE-9]]| int j = 1;
  20. // CHECK-NEXT: 1| [[@LINE-9]]|}
  21. // ALL: {{^ *}}| _Z4funcIiEiT_:
  22. // FILTER-NOT: {{^ *(\| )?}} _Z4funcIiEiT_:
  23. // ALL-NEXT: 1| [[@LINE-19]]|int func(T x) {
  24. // ALL-NEXT: 1| [[@LINE-19]]| if(x)
  25. // ALL-NEXT: 0| [[@LINE-19]]| return 0;
  26. // ALL-NEXT: 1| [[@LINE-19]]| else
  27. // ALL-NEXT: 1| [[@LINE-19]]| return 1;
  28. // ALL-NEXT: 0| [[@LINE-19]]| int j = 1;
  29. // ALL-NEXT: 1| [[@LINE-19]]|}
  30. int main() { // ALL: 1| [[@LINE]]|int main() {
  31. func<int>(0); // ALL-NEXT: 1| [[@LINE]]| func<int>(0);
  32. func<bool>(true); // ALL-NEXT: 1| [[@LINE]]| func<bool>(true);
  33. return 0; // ALL-NEXT: 1| [[@LINE]]| return 0;
  34. } // ALL-NEXT: 1| [[@LINE]]|}
  35. // after coverage // ALL-NEXT: | [[@LINE]]|// after
  36. // FILTER-NOT: | [[@LINE-1]]|// after