[cfe-commits] r93601 - in /cfe/trunk: lib/CodeGen/CGDebugInfo.cpp test/CodeGenCXX/debug-info.cpp
    Eli Friedman 
    eli.friedman at gmail.com
       
    Fri Jan 15 16:43:13 PST 2010
    
    
  
Author: efriedma
Date: Fri Jan 15 18:43:13 2010
New Revision: 93601
URL: http://llvm.org/viewvc/llvm-project?rev=93601&view=rev
Log:
Fix crash generating debug info for constructor for anonymous struct.
Modified:
    cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
    cfe/trunk/test/CodeGenCXX/debug-info.cpp
Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=93601&r1=93600&r2=93601&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Fri Jan 15 18:43:13 2010
@@ -1001,7 +1001,7 @@
   const Decl *D = GD.getDecl();
   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
     Name = getFunctionName(FD);
-    if (Name[0] == '\01')
+    if (!Name.empty() && Name[0] == '\01')
       Name = Name.substr(1);
     // Use mangled name as linkage name for c/c++ functions.
     LinkageName = CGM.getMangledName(GD);
Modified: cfe/trunk/test/CodeGenCXX/debug-info.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info.cpp?rev=93601&r1=93600&r2=93601&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/debug-info.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/debug-info.cpp Fri Jan 15 18:43:13 2010
@@ -18,3 +18,9 @@
   int B::*a = 0;
   void (B::*b)() = 0;
 }
+
+namespace EmptyNameCrash {
+  struct A { A(); };
+  typedef struct { A x; } B;
+  B x;
+}
    
    
More information about the cfe-commits
mailing list