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

Devang Patel dpatel at apple.com
Mon Nov 30 16:12:27 PST 2009


Author: dpatel
Date: Mon Nov 30 18:12:27 2009
New Revision: 90175

URL: http://llvm.org/viewvc/llvm-project?rev=90175&view=rev
Log:
If pointer type has a name (e.g. "id" in objc) then use the name in the debug info.

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=90175&r1=90174&r2=90175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp Mon Nov 30 18:12:27 2009
@@ -497,17 +497,36 @@
   unsigned Flags = 0;
   if (type_is_block_byref_struct(type))
     Flags |= llvm::DIType::FlagBlockByrefStruct;
+
   expanded_location Loc = GetNodeLocation(type);
 
+  // Check if this pointer type has a name.
+  if (tree TyName = TYPE_NAME(type)) 
+    if (TREE_CODE(TyName) == TYPE_DECL && !DECL_ORIGINAL_TYPE(TyName)) {
+      expanded_location TypeNameLoc = GetNodeLocation(TyName);
+      DIType Ty = DebugFactory.CreateDerivedType(Tag, findRegion(TyName),
+                                                 GetNodeName(TyName), 
+                                                 getOrCreateCompileUnit(TypeNameLoc.file),
+                                                 TypeNameLoc.line,
+                                                 0 /*size*/,
+                                                 0 /*align*/,
+                                                 0 /*offset */, 
+                                                 0 /*flags*/, 
+                                                 FromTy);
+      TypeCache[TyName] = WeakVH(Ty.getNode());
+      return Ty;
+    }
+  
   StringRef PName = FromTy.getName();
-  return  DebugFactory.CreateDerivedType(Tag, findRegion(type), PName,
-                                         getOrCreateCompileUnit(NULL), 
-                                         0 /*line no*/, 
-                                         NodeSizeInBits(type),
-                                         NodeAlignInBits(type),
-                                         0 /*offset */, 
-                                         Flags, 
-                                         FromTy);
+  DIType PTy = DebugFactory.CreateDerivedType(Tag, findRegion(type), PName,
+                                              getOrCreateCompileUnit(NULL), 
+                                              0 /*line no*/, 
+                                              NodeSizeInBits(type),
+                                              NodeAlignInBits(type),
+                                              0 /*offset */, 
+                                              Flags, 
+                                              FromTy);
+  return PTy;
 }
 
 /// createArrayType - Create ArrayType.





More information about the llvm-commits mailing list