[llvm-commits] [llvm-gcc-4.2] r95469 - /llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp

Devang Patel dpatel at apple.com
Fri Feb 5 17:45:07 PST 2010


Author: dpatel
Date: Fri Feb  5 19:45:07 2010
New Revision: 95469

URL: http://llvm.org/viewvc/llvm-project?rev=95469&view=rev
Log:
Class static variables' debug info is emitted through EmitGlobalVariable(). There is not any need to emit this info again here.

Modified:
    llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp

Modified: llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp?rev=95469&r1=95468&r2=95469&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp Fri Feb  5 19:45:07 2010
@@ -927,48 +927,42 @@
     // Get the location of the member.
     expanded_location MemLoc = GetNodeLocation(Member, false);
 
-    if (TREE_CODE(Member) == FIELD_DECL) {
+    if (TREE_CODE(Member) != FIELD_DECL)
+      // otherwise is a static variable, whose debug info is emitted
+      // when through EmitGlobalVariable().
+      continue;
       
-      if (DECL_FIELD_OFFSET(Member) == 0 ||
-          TREE_CODE(DECL_FIELD_OFFSET(Member)) != INTEGER_CST)
-        // FIXME: field with variable position, skip it for now.
-        continue;
-      
-      /* Ignore nameless fields.  */
-      if (DECL_NAME (Member) == NULL_TREE
-          && !(TREE_CODE (TREE_TYPE (Member)) == UNION_TYPE
-               || TREE_CODE (TREE_TYPE (Member)) == RECORD_TYPE))
-        continue;
-      
-      // Field type is the declared type of the field.
-      tree FieldNodeType = FieldType(Member);
-      DIType MemberType = getOrCreateType(FieldNodeType);
-      StringRef MemberName = GetNodeName(Member);
-      unsigned MFlags = 0;
-      if (TREE_PROTECTED(Member))
-        MFlags = llvm::DIType::FlagProtected;
-      else if (TREE_PRIVATE(Member))
-        MFlags = llvm::DIType::FlagPrivate;
-      
-      DIType DTy =
-        DebugFactory.CreateDerivedType(DW_TAG_member, 
-                                       findRegion(DECL_CONTEXT(Member)),
-                                       MemberName, 
-                                       getOrCreateCompileUnit(MemLoc.file),
-                                       MemLoc.line, NodeSizeInBits(Member),
-                                       NodeAlignInBits(FieldNodeType),
-                                       int_bit_position(Member), 
-                                       MFlags, MemberType);
-      EltTys.push_back(DTy);
-    } if (TREE_CODE(Member) == VAR_DECL) {
-      EltTys.push_back(DebugFactory.
-                       CreateVariable(DW_TAG_auto_variable,
-                                      findRegion(DECL_CONTEXT(Member)),
-                                      GetNodeName(Member), 
-                                      getOrCreateCompileUnit(MemLoc.file),
-                                      MemLoc.line, 
-                                      getOrCreateType(TREE_TYPE(Member))));
-    }
+    if (DECL_FIELD_OFFSET(Member) == 0 ||
+        TREE_CODE(DECL_FIELD_OFFSET(Member)) != INTEGER_CST)
+      // FIXME: field with variable position, skip it for now.
+      continue;
+    
+    /* Ignore nameless fields.  */
+    if (DECL_NAME (Member) == NULL_TREE
+        && !(TREE_CODE (TREE_TYPE (Member)) == UNION_TYPE
+             || TREE_CODE (TREE_TYPE (Member)) == RECORD_TYPE))
+      continue;
+    
+    // Field type is the declared type of the field.
+    tree FieldNodeType = FieldType(Member);
+    DIType MemberType = getOrCreateType(FieldNodeType);
+    StringRef MemberName = GetNodeName(Member);
+    unsigned MFlags = 0;
+    if (TREE_PROTECTED(Member))
+      MFlags = llvm::DIType::FlagProtected;
+    else if (TREE_PRIVATE(Member))
+      MFlags = llvm::DIType::FlagPrivate;
+    
+    DIType DTy =
+      DebugFactory.CreateDerivedType(DW_TAG_member, 
+                                     findRegion(DECL_CONTEXT(Member)),
+                                     MemberName, 
+                                     getOrCreateCompileUnit(MemLoc.file),
+                                     MemLoc.line, NodeSizeInBits(Member),
+                                     NodeAlignInBits(FieldNodeType),
+                                     int_bit_position(Member), 
+                                     MFlags, MemberType);
+    EltTys.push_back(DTy);
   }
   
   for (tree Member = TYPE_METHODS(type); Member;





More information about the llvm-commits mailing list