diff options
author | dim <dim@FreeBSD.org> | 2015-05-27 18:47:56 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2015-05-27 18:47:56 +0000 |
commit | 3191b2b32a96e1a6ee833fcca73e5c8e0c67ba65 (patch) | |
tree | dbbd4047878da71c1a706e26ce05b4e7791b14cc /test/CodeGenCXX/debug-info-template-explicit-specialization.cpp | |
parent | 38d6f2e7f2ce51a5b3836d26596c6c34a3288752 (diff) | |
download | FreeBSD-src-3191b2b32a96e1a6ee833fcca73e5c8e0c67ba65.zip FreeBSD-src-3191b2b32a96e1a6ee833fcca73e5c8e0c67ba65.tar.gz |
Vendor import of clang trunk r238337:
https://llvm.org/svn/llvm-project/cfe/trunk@238337
Diffstat (limited to 'test/CodeGenCXX/debug-info-template-explicit-specialization.cpp')
-rw-r--r-- | test/CodeGenCXX/debug-info-template-explicit-specialization.cpp | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp b/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp index 4613038..4dadc4f 100644 --- a/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp +++ b/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp @@ -4,20 +4,22 @@ // type info at all. // RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -g %s -o - -gline-tables-only | FileCheck %s -check-prefix LINES-ONLY -// LINES-ONLY-NOT: DW_TAG_structure_type +// LINES-ONLY-NOT: !DICompositeType(tag: DW_TAG_structure_type template <typename T> struct a { }; extern template class a<int>; -// CHECK-NOT: ; [ DW_TAG_structure_type ] [a<int>] +// CHECK-NOT: DICompositeType(tag: DW_TAG_structure_type, name: "a<int>" template <typename T> struct b { }; extern template class b<int>; b<int> bi; -// CHECK: ; [ DW_TAG_structure_type ] [b<int>] {{.*}} [def] +// CHECK: DICompositeType(tag: DW_TAG_structure_type, name: "b<int>" +// CHECK-NOT: DIFlagFwdDecl +// CHECK-SAME: ){{$}} template <typename T> struct c { @@ -25,7 +27,8 @@ struct c { }; extern template class c<int>; c<int> ci; -// CHECK: ; [ DW_TAG_structure_type ] [c<int>] {{.*}} [decl] +// CHECK: DICompositeType(tag: DW_TAG_structure_type, name: "c<int>" +// CHECK-SAME: DIFlagFwdDecl template <typename T> struct d { @@ -33,7 +36,9 @@ struct d { }; extern template class d<int>; d<int> di; -// CHECK: ; [ DW_TAG_structure_type ] [d<int>] {{.*}} [def] +// CHECK: DICompositeType(tag: DW_TAG_structure_type, name: "d<int>" +// CHECK-NOT: DIFlagFwdDecl +// CHECK-SAME: ){{$}} template <typename T> struct e { @@ -47,7 +52,9 @@ e<int> ei; // There's no guarantee that the out of line definition will appear before the // explicit template instantiation definition, so conservatively emit the type // definition here. -// CHECK: ; [ DW_TAG_structure_type ] [e<int>] {{.*}} [def] +// CHECK: DICompositeType(tag: DW_TAG_structure_type, name: "e<int>" +// CHECK-NOT: DIFlagFwdDecl +// CHECK-SAME: ){{$}} template <typename T> struct f { @@ -58,7 +65,9 @@ template <typename T> void f<T>::g() { } f<int> fi; -// CHECK: ; [ DW_TAG_structure_type ] [f<int>] {{.*}} [def] +// CHECK: DICompositeType(tag: DW_TAG_structure_type, name: "f<int>" +// CHECK-NOT: DIFlagFwdDecl +// CHECK-SAME: ){{$}} template <typename T> struct g { @@ -68,13 +77,17 @@ template <> void g<int>::f(); extern template class g<int>; g<int> gi; -// CHECK: ; [ DW_TAG_structure_type ] [g<int>] {{.*}} [def] +// CHECK: DICompositeType(tag: DW_TAG_structure_type, name: "g<int>" +// CHECK-NOT: DIFlagFwdDecl +// CHECK-SAME: ){{$}} template <typename T> struct h { }; template class h<int>; -// CHECK: ; [ DW_TAG_structure_type ] [h<int>] {{.*}} [def] +// CHECK: DICompositeType(tag: DW_TAG_structure_type, name: "h<int>" +// CHECK-NOT: DIFlagFwdDecl +// CHECK-SAME: ){{$}} template <typename T> struct i { @@ -83,14 +96,16 @@ struct i { template<> void i<int>::f(); extern template class i<int>; i<int> ii; -// CHECK: ; [ DW_TAG_structure_type ] [i<int>] {{.*}} [def] +// CHECK: DICompositeType(tag: DW_TAG_structure_type, name: "i<int>" +// CHECK-NOT: DIFlagFwdDecl +// CHECK-SAME: ){{$}} template <typename T1, typename T2 = T1> struct j { }; extern template class j<int>; j<int> jj; -// CHECK: ; [ DW_TAG_structure_type ] [j<int, int>] +// CHECK: DICompositeType(tag: DW_TAG_structure_type, name: "j<int, int>" template <typename T> struct k { @@ -98,4 +113,4 @@ struct k { template <> struct k<int>; template struct k<int>; -// CHECK-NOT: ; [ DW_TAG_structure_type ] [k<int>] +// CHECK-NOT: !DICompositeType(tag: DW_TAG_structure_type, name: "k<int>" |