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

Devang Patel dpatel at apple.com
Thu Aug 27 15:40:57 PDT 2009


Author: dpatel
Date: Thu Aug 27 17:40:57 2009
New Revision: 80296

URL: http://llvm.org/viewvc/llvm-project?rev=80296&view=rev
Log:
Fix a bug in updating TypeCache. 

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=80296&r1=80295&r2=80296&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp Thu Aug 27 17:40:57 2009
@@ -704,11 +704,11 @@
 DIType DebugInfo::createVariantType(tree type, DIType MainTy) {
   
   DIType Ty;
-  if (tree Name = TYPE_NAME(type)) {
-    if (TREE_CODE(Name) == TYPE_DECL &&  DECL_ORIGINAL_TYPE(Name)) {
-      expanded_location TypeDefLoc = GetNodeLocation(Name);
-      Ty = DebugFactory.CreateDerivedType(DW_TAG_typedef, findRegion(type),
-                                          GetNodeName(Name), 
+  if (tree TyDef = TYPE_NAME(type)) {
+    if (TREE_CODE(TyDef) == TYPE_DECL &&  DECL_ORIGINAL_TYPE(TyDef)) {
+      expanded_location TypeDefLoc = GetNodeLocation(TyDef);
+      Ty = DebugFactory.CreateDerivedType(DW_TAG_typedef, findRegion(TyDef),
+                                          GetNodeName(TyDef), 
                                           getOrCreateCompileUnit(TypeDefLoc.file),
                                           TypeDefLoc.line,
                                           0 /*size*/,
@@ -716,8 +716,7 @@
                                           0 /*offset */, 
                                           0 /*flags*/, 
                                           MainTy);
-      // Set the slot early to prevent recursion difficulties.
-      TypeCache[type] = Ty;
+      TypeCache[TyDef] = Ty;
       return Ty;
     }
   }





More information about the llvm-commits mailing list