]> granicus.if.org Git - clang/commitdiff
Debug Info: Add a testcase for the bug introduced by r259975.
authorAdrian Prantl <aprantl@apple.com>
Fri, 25 Mar 2016 00:20:35 +0000 (00:20 +0000)
committerAdrian Prantl <aprantl@apple.com>
Fri, 25 Mar 2016 00:20:35 +0000 (00:20 +0000)
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>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264366 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGenCXX/debug-info-enum-class.cpp

index 71e6e2b2574e214bf055bed000782f35a4143714..70c57d6cb75efea4fbf6019cbe96292ff7fe64c9 100644 (file)
@@ -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]+]]