r188612 - PR16927: Don't assert (or, previously, skip) static data members of enumeration type

David Blaikie dblaikie at gmail.com
Sat Aug 17 13:01:53 PDT 2013


Author: dblaikie
Date: Sat Aug 17 15:01:53 2013
New Revision: 188612

URL: http://llvm.org/viewvc/llvm-project?rev=188612&view=rev
Log:
PR16927: Don't assert (or, previously, skip) static data members of enumeration type

Modified:
    cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
    cfe/trunk/test/CodeGenCXX/debug-info-static-member.cpp

Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=188612&r1=188611&r2=188612&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Sat Aug 17 15:01:53 2013
@@ -874,9 +874,6 @@ CGDebugInfo::CreateRecordStaticField(con
   llvm::DIFile VUnit = getOrCreateFile(Var->getLocation());
   llvm::DIType VTy = getOrCreateType(Var->getType(), VUnit);
 
-  assert(VTy.getTag() != llvm::dwarf::DW_TAG_enumeration_type &&
-         "Do not describe enums as static members");
-
   unsigned LineNumber = getLineNumber(Var->getLocation());
   StringRef VName = Var->getName();
   llvm::Constant *C = NULL;

Modified: cfe/trunk/test/CodeGenCXX/debug-info-static-member.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-static-member.cpp?rev=188612&r1=188611&r2=188612&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/debug-info-static-member.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/debug-info-static-member.cpp Sat Aug 17 15:01:53 2013
@@ -1,7 +1,9 @@
 // RUN: %clangxx -target x86_64-unknown-unknown -g -O0 %s -emit-llvm -S -o - | FileCheck %s
 // PR14471
 
-
+enum X {
+  Y
+};
 class C
 {
   static int a;
@@ -13,6 +15,7 @@ public:
   static int c;
   const static int const_c = 18;
   int d;
+  static X x_a;
 };
 
 int C::a = 4;
@@ -37,5 +40,6 @@ int main()
 // CHECK: metadata !"const_b", {{.*}}, float 0x{{.*}}} ; [ DW_TAG_member ] [const_b] [line {{.*}}, size 0, align 0, offset 0] [protected] [static]
 // CHECK: ![[DECL_C:[0-9]+]] {{.*}} metadata !"c", {{.*}} [ DW_TAG_member ] [c] [line {{.*}}, size 0, align 0, offset 0] [static]
 // CHECK: metadata !"const_c", {{.*}} [ DW_TAG_member ] [const_c] [line {{.*}}, size 0, align 0, offset 0] [static]
+// CHECK: metadata !"x_a", {{.*}} [ DW_TAG_member ] [x_a] {{.*}} [static]
 // CHECK: metadata !"b", {{.*}} @_ZN1C1bE, metadata ![[DECL_B]]} ; [ DW_TAG_variable ] [b] {{.*}} [def]
 // CHECK: metadata !"c", {{.*}} @_ZN1C1cE, metadata ![[DECL_C]]} ; [ DW_TAG_variable ] [c] {{.*}} [def]





More information about the cfe-commits mailing list