[llvm-commits] [dragonegg] r88775 - /dragonegg/trunk/llvm-debug.cpp

Duncan Sands baldrick at free.fr
Sat Nov 14 02:48:11 PST 2009


Author: baldrick
Date: Sat Nov 14 04:48:11 2009
New Revision: 88775

URL: http://llvm.org/viewvc/llvm-project?rev=88775&view=rev
Log:
Port commit 85631 (dpatel) from llvm-gcc:
Do not use empty strings for name in debug info. It confuses other tools reading compiler generated output.

Modified:
    dragonegg/trunk/llvm-debug.cpp

Modified: dragonegg/trunk/llvm-debug.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/llvm-debug.cpp?rev=88775&r1=88774&r2=88775&view=diff

==============================================================================
--- dragonegg/trunk/llvm-debug.cpp (original)
+++ dragonegg/trunk/llvm-debug.cpp Sat Nov 14 04:48:11 2009
@@ -154,7 +154,7 @@
     }
   }
   
-  return "";
+  return NULL;
 }
 
 /// GetNodeLocation - Returns the location stored in a node  regardless of
@@ -211,7 +211,7 @@
       return IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(Node));
     } 
   }
-  return "";
+  return NULL;
 }
 
 DebugInfo::DebugInfo(Module *m)
@@ -447,7 +447,7 @@
     DebugFactory.GetOrCreateArray(EltTys.data(), EltTys.size());
 
   return DebugFactory.CreateCompositeType(llvm::dwarf::DW_TAG_subroutine_type,
-                                          findRegion(type), "", 
+                                          findRegion(type), NULL,
                                           getOrCreateCompileUnit(NULL), 
                                           0, 0, 0, 0, 0,
                                           llvm::DIType(), EltTypeArray);
@@ -521,7 +521,7 @@
     DebugFactory.GetOrCreateArray(Subscripts.data(), Subscripts.size());
   expanded_location Loc = GetNodeLocation(type);
   return DebugFactory.CreateCompositeType(llvm::dwarf::DW_TAG_array_type,
-                                          findRegion(type), "", 
+                                          findRegion(type), NULL,
                                           getOrCreateCompileUnit(Loc.file), 0, 
                                           NodeSizeInBits(type), 
                                           NodeAlignInBits(type), 0, 0,
@@ -601,9 +601,14 @@
   // reused because MDNodes are uniqued. To avoid this, use type context
   /// also while creating FwdDecl for now.
   std::string FwdName;
-  if (TYPE_CONTEXT(type))
-    FwdName = GetNodeName(TYPE_CONTEXT(type));
-  FwdName = FwdName + GetNodeName(type);
+  if (TYPE_CONTEXT(type)) {
+    const char *TypeContextName = GetNodeName(TYPE_CONTEXT(type));
+    if (TypeContextName)
+      FwdName = TypeContextName;
+  }
+  const char *TypeName = GetNodeName(type);
+  if (TypeName)
+    FwdName = FwdName + TypeName;
   unsigned Flags = llvm::DIType::FlagFwdDecl;
   llvm::DICompositeType FwdDecl =
     DebugFactory.CreateCompositeType(Tag, 
@@ -634,7 +639,7 @@
       // FIXME : name, size, align etc...
       DIType DTy = 
         DebugFactory.CreateDerivedType(DW_TAG_inheritance, 
-                                       findRegion(type), "",
+                                       findRegion(type), NULL,
                                        llvm::DICompileUnit(), 0,0,0, 
                                        getINTEGER_CSTVal(BINFO_OFFSET(BInfo)),
                                        0, BaseClass);
@@ -753,7 +758,7 @@
 
   if (TYPE_VOLATILE(type)) {
     Ty = DebugFactory.CreateDerivedType(DW_TAG_volatile_type, 
-                                        findRegion(type), "", 
+                                        findRegion(type), NULL,
                                         getOrCreateCompileUnit(NULL), 
                                         0 /*line no*/, 
                                         NodeSizeInBits(type),
@@ -766,7 +771,7 @@
 
   if (TYPE_READONLY(type)) 
     Ty =  DebugFactory.CreateDerivedType(DW_TAG_const_type, 
-                                         findRegion(type), "", 
+                                         findRegion(type), NULL,
                                          getOrCreateCompileUnit(NULL), 
                                          0 /*line no*/, 
                                          NodeSizeInBits(type),
@@ -926,7 +931,7 @@
   DICompileUnit NewCU = DebugFactory.CreateCompileUnit(LangTag, FileName, 
                                                      Directory, 
                                                      version_string, isMain,
-                                                     optimize, "",
+                                                     optimize, NULL,
                                                      ObjcRunTimeVer);
   CUCache[FullPath] = WeakVH(NewCU.getNode());
   return NewCU;





More information about the llvm-commits mailing list