summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/debug-info-class.cpp
diff options
context:
space:
mode:
authorMichael Gottesman <mgottesman@apple.com>2013-08-19 18:46:16 +0000
committerMichael Gottesman <mgottesman@apple.com>2013-08-19 18:46:16 +0000
commit349542b171d8f90e2b5385240b0ac567286b7190 (patch)
treef6b228480d32a68c910b6fb15c13b661976a2078 /clang/test/CodeGenCXX/debug-info-class.cpp
parenteb0911f59df85a5fef9338ce5e6f92513ab46351 (diff)
downloadbcm5719-llvm-349542b171d8f90e2b5385240b0ac567286b7190.tar.gz
bcm5719-llvm-349542b171d8f90e2b5385240b0ac567286b7190.zip
Revert "Revert "Revert "DebugInfo: Omit debug info for dynamic classes in TUs that do not have the vtable for that class"""
This reverts commit r188642. This change is causing LTO builds to cause our 16 GB machines to swap and OOM all weekend. I am going to work with Dave Blaikie to resolve the issue. Sorry Dave =(. llvm-svn: 188687
Diffstat (limited to 'clang/test/CodeGenCXX/debug-info-class.cpp')
-rw-r--r--clang/test/CodeGenCXX/debug-info-class.cpp76
1 files changed, 9 insertions, 67 deletions
diff --git a/clang/test/CodeGenCXX/debug-info-class.cpp b/clang/test/CodeGenCXX/debug-info-class.cpp
index e63eeb5eae5..0a337dc05d8 100644
--- a/clang/test/CodeGenCXX/debug-info-class.cpp
+++ b/clang/test/CodeGenCXX/debug-info-class.cpp
@@ -13,39 +13,7 @@ public:
virtual ~B();
};
-B::~B() {
-}
-
struct C {
- static int s;
- virtual ~C();
-};
-
-C::~C() {
-}
-
-struct D {
- D();
- virtual ~D();
- void func() {
- }
-};
-
-struct E {
- E();
- virtual ~E();
- virtual void func() {
- }
-};
-
-struct F {
- struct inner {
- };
- static const int i = 2;
- virtual ~F();
-};
-
-struct G {
virtual void func();
struct inner {
int j;
@@ -61,17 +29,10 @@ struct A {
}
};
-void f1() {
- D x;
- x.func();
- E y;
- int i = F::i;
- F::inner z;
-}
int main(int argc, char **argv) {
B b;
- G::inner c_i;
+ C::inner c_i;
if (argc) {
A a;
}
@@ -88,34 +49,15 @@ int main(int argc, char **argv) {
// CHECK: DW_TAG_structure_type ] [foo]
// CHECK: DW_TAG_class_type ] [bar]
// CHECK: DW_TAG_union_type ] [baz]
+// CHECK: DW_TAG_structure_type ] [A]
+// CHECK: HdrSize
// CHECK: DW_TAG_class_type ] [B]
// CHECK: metadata !"_vptr$B", {{.*}}, i32 64, metadata !{{.*}}} ; [ DW_TAG_member ]
-
-// CHECK: [[C:![0-9]*]] = {{.*}} metadata [[C_MEM:![0-9]*]], i32 0, metadata [[C]], null} ; [ DW_TAG_structure_type ] [C] {{.*}} [def]
-// CHECK: [[C_MEM]] = metadata !{metadata [[C_VPTR:![0-9]*]], metadata [[C_S:![0-9]*]], metadata [[C_DTOR:![0-9]*]]}
-// CHECK: [[C_VPTR]] = {{.*}} ; [ DW_TAG_member ] [_vptr$C] {{.*}} [artificial]
-// CHECK: [[C_S]] = {{.*}} ; [ DW_TAG_member ] [s] {{.*}} [static] [from int]
-// CHECK: [[C_DTOR]] = {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [~C]
-
-// CHECK: ; [ DW_TAG_structure_type ] [A]
-// CHECK: HdrSize
-// CHECK: metadata [[D_MEM:![0-9]*]], i32 0, null} ; [ DW_TAG_structure_type ] [D] {{.*}} [decl]
-// CHECK: [[D_MEM]] = metadata !{metadata [[D_FUNC:![0-9]*]]}
-// CHECK: [[D_FUNC]] = {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [func]
-
-// CHECK: [[F_I_DEF:![0-9]*]] = {{.*}}, metadata [[F_I:![0-9]*]]} ; [ DW_TAG_variable ] [i]
-// CHECK: [[F_I]] = {{.*}} ; [ DW_TAG_member ] [i]
-// CHECK: [[F:![0-9]*]] = {{.*}} metadata [[F_MEM:![0-9]*]], i32 0, null, null} ; [ DW_TAG_structure_type ] [F] {{.*}} [def]
-// CHECK: [[F_MEM]] = metadata !{metadata [[F_I]]}
-
-// CHECK: null, i32 0, null} ; [ DW_TAG_structure_type ] [E] {{.*}} [decl]
-
-// CHECK: metadata [[G_INNER_MEM:![0-9]*]], i32 0, null, null} ; [ DW_TAG_structure_type ] [inner] [line 50, {{.*}} [def]
+// CHECK: metadata [[C_INNER_MEM:![0-9]*]], i32 0, null, null} ; [ DW_TAG_structure_type ] [inner] {{.*}} [def]
// Context chains (in Clang -flimit-debug-info and in GCC generally) contain
// definitions without members (& without a vbase 'containing type'):
-// CHECK: null, i32 0, null, null} ; [ DW_TAG_structure_type ] [G] {{.*}} [def]
-// CHECK: [[G_INNER_MEM]] = metadata !{metadata [[G_INNER_I:![0-9]*]]}
-// CHECK: [[G_INNER_I]] = {{.*}} ; [ DW_TAG_member ] [j] {{.*}} [from int]
-
-// CHECK: ![[EXCEPTLOC]] = metadata !{i32 79,
-// CHECK: ![[RETLOC]] = metadata !{i32 78,
+// CHECK: null, i32 0, null, null} ; [ DW_TAG_structure_type ] [C] {{.*}} [def]
+// CHECK: [[C_INNER_MEM]] = metadata !{metadata [[C_INNER_I:![0-9]*]]}
+// CHECK: [[C_INNER_I]] = {{.*}} ; [ DW_TAG_member ] [j] {{.*}} [from int]
+// CHECK: ![[EXCEPTLOC]] = metadata !{i32 40,
+// CHECK: ![[RETLOC]] = metadata !{i32 39,
OpenPOWER on IntegriCloud