summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/debug-info-enum-class.cpp
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2012-10-05 01:49:33 +0000
committerEli Friedman <eli.friedman@gmail.com>2012-10-05 01:49:33 +0000
commit9018ef709e798ad49957fc808744aee4ecf52b5f (patch)
tree5588fb1960db947948cfea4d58730ad030a285ea /clang/test/CodeGenCXX/debug-info-enum-class.cpp
parentc6c86c43f9fe33e50428d0f08fc6dd44c85fa2e2 (diff)
downloadbcm5719-llvm-9018ef709e798ad49957fc808744aee4ecf52b5f.tar.gz
bcm5719-llvm-9018ef709e798ad49957fc808744aee4ecf52b5f.zip
Make sure to generate the right kind of MDNode for enum forward declarations.
PR14029, clang part. llvm-svn: 165289
Diffstat (limited to 'clang/test/CodeGenCXX/debug-info-enum-class.cpp')
-rw-r--r--clang/test/CodeGenCXX/debug-info-enum-class.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/clang/test/CodeGenCXX/debug-info-enum-class.cpp b/clang/test/CodeGenCXX/debug-info-enum-class.cpp
index 6f88439b1ee..fd243abb2e8 100644
--- a/clang/test/CodeGenCXX/debug-info-enum-class.cpp
+++ b/clang/test/CodeGenCXX/debug-info-enum-class.cpp
@@ -12,4 +12,18 @@ D d;
// CHECK: metadata !{i32 {{.*}}, null, metadata !"A", metadata !4, i32 3, i64 32, i64 32, i32 0, i32 0, metadata !5, metadata !6, i32 0, i32 0} ; [ DW_TAG_enumeration_type ]
// CHECK: metadata !{i32 {{.*}}, null, metadata !"B", metadata !4, i32 4, i64 64, i64 64, i32 0, i32 0, metadata !9, metadata !10, i32 0, i32 0} ; [ DW_TAG_enumeration_type ]
// CHECK: metadata !{i32 {{.*}}, null, metadata !"C", metadata !4, i32 5, i64 32, i64 32, i32 0, i32 0, null, metadata !13, i32 0, i32 0} ; [ DW_TAG_enumeration_type ]
-// CHECK: metadata !{i32 {{.*}}, null, metadata !"D", metadata !4, i32 6, i64 16, i64 16, i32 0, i32 4, null, metadata !16, i32 0, i32 0} ; [ DW_TAG_enumeration_type ]
+// CHECK: metadata !{i32 {{.*}}, null, metadata !"D", metadata !4, i32 6, i64 16, i64 16, i32 0, i32 4, null, null, i32 0} ; [ DW_TAG_enumeration_type ]
+
+namespace PR14029 {
+ // Make sure this doesn't crash/assert.
+ template <typename T> struct Test {
+ enum class Tag {
+ test = 0
+ };
+ Test() {
+ auto t = Tag::test;
+ }
+ Tag tag() const { return static_cast<Tag>(1); }
+ };
+ Test<int> t;
+}
OpenPOWER on IntegriCloud