diff options
author | Michael Gottesman <mgottesman@apple.com> | 2013-08-19 18:46:16 +0000 |
---|---|---|
committer | Michael Gottesman <mgottesman@apple.com> | 2013-08-19 18:46:16 +0000 |
commit | 349542b171d8f90e2b5385240b0ac567286b7190 (patch) | |
tree | f6b228480d32a68c910b6fb15c13b661976a2078 /clang/test/CodeGenCXX/debug-info-class.cpp | |
parent | eb0911f59df85a5fef9338ce5e6f92513ab46351 (diff) | |
download | bcm5719-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.cpp | 76 |
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, |