summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2016-03-25 00:20:35 +0000
committerAdrian Prantl <aprantl@apple.com>2016-03-25 00:20:35 +0000
commit53058380bb03394b9ee2e4f9f6ab43f5270fc6fa (patch)
treed2434532aaeee3f1e0492bac343b9bf4ac09f338
parent9f7e2d765702f1e9f85ab55f34b21b5824857635 (diff)
downloadbcm5719-llvm-53058380bb03394b9ee2e4f9f6ab43f5270fc6fa.tar.gz
bcm5719-llvm-53058380bb03394b9ee2e4f9f6ab43f5270fc6fa.zip
Debug Info: Add a testcase for the bug introduced by r259975.
In r259975 we rauw'ed the scope of enum declarations without taking into account that DIBuilder strips out scope references that point to the DICompileUnit to facilitate type uniquing. This testcase guards against making the same mistake again. <rdar://problem/25078246> llvm-svn: 264366
-rw-r--r--clang/test/CodeGenCXX/debug-info-enum-class.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/debug-info-enum-class.cpp b/clang/test/CodeGenCXX/debug-info-enum-class.cpp
index 71e6e2b2574..70c57d6cb75 100644
--- a/clang/test/CodeGenCXX/debug-info-enum-class.cpp
+++ b/clang/test/CodeGenCXX/debug-info-enum-class.cpp
@@ -4,6 +4,7 @@ enum class A { A1=1 }; // underlying type is int by default
enum class B: unsigned long { B1=1 }; // underlying type is unsigned long
enum C { C1 = 1 };
enum D : short; // enum forward declaration
+enum Z : int;
A a;
B b;
C c;
@@ -94,6 +95,11 @@ void f2(E) {
// CHECK-NOT: offset:
// CHECK-SAME: flags: DIFlagFwdDecl
+// CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "Z"
+// CHECK-NOT: scope:
+// CHECK-SAME: flags: DIFlagFwdDecl
+void fz() { Z z; }
+
namespace test5 {
// CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E"
// CHECK-SAME: scope: [[TEST5:![0-9]+]]
OpenPOWER on IntegriCloud