summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/debug-info-class.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2013-08-22 15:23:05 +0000
committerDavid Blaikie <dblaikie@gmail.com>2013-08-22 15:23:05 +0000
commitd89b99d421a95c1e4adb009ea2ef2ee81cfd61b2 (patch)
tree0cc98c5a229d391df8aaa3a95679371edd9124a0 /clang/test/CodeGenCXX/debug-info-class.cpp
parent7b5d4f97a0ffe1f8ef37571d03fd9120f39529fb (diff)
downloadbcm5719-llvm-d89b99d421a95c1e4adb009ea2ef2ee81cfd61b2.tar.gz
bcm5719-llvm-d89b99d421a95c1e4adb009ea2ef2ee81cfd61b2.zip
DebugInfo: emit the definition of types when construction vtables are required as these types may never end up emitting the full class data
This might be able to be optimized further by only doing this in the absence of a key function, but it doesn't look like GCC is doing that so I'm not rushing to do it just yet. llvm-svn: 189022
Diffstat (limited to 'clang/test/CodeGenCXX/debug-info-class.cpp')
-rw-r--r--clang/test/CodeGenCXX/debug-info-class.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/clang/test/CodeGenCXX/debug-info-class.cpp b/clang/test/CodeGenCXX/debug-info-class.cpp
index e63eeb5eae5..63fce06219c 100644
--- a/clang/test/CodeGenCXX/debug-info-class.cpp
+++ b/clang/test/CodeGenCXX/debug-info-class.cpp
@@ -52,6 +52,11 @@ struct G {
};
};
+struct H {};
+struct I : virtual H {};
+struct J : I {};
+J j;
+
struct A {
int one;
static const int HdrSize = 52;
@@ -103,6 +108,8 @@ int main(int argc, char **argv) {
// CHECK: [[D_MEM]] = metadata !{metadata [[D_FUNC:![0-9]*]]}
// CHECK: [[D_FUNC]] = {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [func]
+// CHECK: ; [ DW_TAG_structure_type ] [I] {{.*}} [def]
+
// 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]
@@ -117,5 +124,5 @@ int main(int argc, char **argv) {
// 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: ![[EXCEPTLOC]] = metadata !{i32 84,
+// CHECK: ![[RETLOC]] = metadata !{i32 83,
OpenPOWER on IntegriCloud