templight-nested-template-instantiation.cpp 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s
  2. template <int N>
  3. struct foo : foo<N - 1> {};
  4. template <>
  5. struct foo<0> {};
  6. // CHECK-LABEL: {{^---$}}
  7. // CHECK: {{^name:[ ]+'foo<2>'$}}
  8. // CHECK: {{^kind:[ ]+TemplateInstantiation$}}
  9. // CHECK: {{^event:[ ]+Begin$}}
  10. // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}}
  11. // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:84:8'$}}
  12. // CHECK-LABEL: {{^---$}}
  13. // CHECK: {{^name:[ ]+'foo<2>'$}}
  14. // CHECK: {{^kind:[ ]+TemplateInstantiation$}}
  15. // CHECK: {{^event:[ ]+End$}}
  16. // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}}
  17. // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:84:8'$}}
  18. // CHECK-LABEL: {{^---$}}
  19. // CHECK: {{^name:[ ]+'foo<2>'$}}
  20. // CHECK: {{^kind:[ ]+TemplateInstantiation$}}
  21. // CHECK: {{^event:[ ]+Begin$}}
  22. // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}}
  23. // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:84:8'$}}
  24. //
  25. // CHECK-LABEL: {{^---$}}
  26. // CHECK: {{^name:[ ]+'foo<1>'$}}
  27. // CHECK: {{^kind:[ ]+TemplateInstantiation$}}
  28. // CHECK: {{^event:[ ]+Begin$}}
  29. // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}}
  30. // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}}
  31. // CHECK-LABEL: {{^---$}}
  32. // CHECK: {{^name:[ ]+'foo<1>'$}}
  33. // CHECK: {{^kind:[ ]+TemplateInstantiation$}}
  34. // CHECK: {{^event:[ ]+End$}}
  35. // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}}
  36. // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}}
  37. // CHECK-LABEL: {{^---$}}
  38. // CHECK: {{^name:[ ]+'foo<1>'$}}
  39. // CHECK: {{^kind:[ ]+TemplateInstantiation$}}
  40. // CHECK: {{^event:[ ]+Begin$}}
  41. // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}}
  42. // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}}
  43. //
  44. // CHECK-LABEL: {{^---$}}
  45. // CHECK: {{^name:[ ]+'foo<0>'$}}
  46. // CHECK: {{^kind:[ ]+Memoization$}}
  47. // CHECK: {{^event:[ ]+Begin$}}
  48. // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:7:8'}}
  49. // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}}
  50. // CHECK-LABEL: {{^---$}}
  51. // CHECK: {{^name:[ ]+'foo<0>'$}}
  52. // CHECK: {{^kind:[ ]+Memoization$}}
  53. // CHECK: {{^event:[ ]+End$}}
  54. // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:7:8'}}
  55. // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}}
  56. //
  57. // CHECK-LABEL: {{^---$}}
  58. // CHECK: {{^name:[ ]+'foo<1>'$}}
  59. // CHECK: {{^kind:[ ]+TemplateInstantiation$}}
  60. // CHECK: {{^event:[ ]+End$}}
  61. // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}}
  62. // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}}
  63. // CHECK-LABEL: {{^---$}}
  64. // CHECK: {{^name:[ ]+'foo<1>'$}}
  65. // CHECK: {{^kind:[ ]+Memoization$}}
  66. // CHECK: {{^event:[ ]+Begin$}}
  67. // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}}
  68. // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}}
  69. // CHECK-LABEL: {{^---$}}
  70. // CHECK: {{^name:[ ]+'foo<1>'$}}
  71. // CHECK: {{^kind:[ ]+Memoization$}}
  72. // CHECK: {{^event:[ ]+End$}}
  73. // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}}
  74. // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}}
  75. // CHECK-LABEL: {{^---$}}
  76. // CHECK: {{^name:[ ]+'foo<2>'$}}
  77. // CHECK: {{^kind:[ ]+TemplateInstantiation$}}
  78. // CHECK: {{^event:[ ]+End$}}
  79. // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}}
  80. // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:84:8'$}}
  81. foo<2> x;