]> granicus.if.org Git - clang/commitdiff
Use StringRef in CGDebugInfo::EmitFunctionStart.
authorBenjamin Kramer <benny.kra@googlemail.com>
Tue, 8 Dec 2009 14:04:35 +0000 (14:04 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Tue, 8 Dec 2009 14:04:35 +0000 (14:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90856 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGDebugInfo.cpp
lib/CodeGen/CGDebugInfo.h
lib/CodeGen/CGDecl.cpp
lib/CodeGen/CodeGenFunction.cpp

index 197c145c67c4178bfd8091cac3024a2334152221..2238c89f8357fadf374a32fd41b4cf3512e91513 100644 (file)
@@ -939,16 +939,16 @@ llvm::DIType CGDebugInfo::CreateTypeNode(QualType Ty,
 
 /// EmitFunctionStart - Constructs the debug code for entering a function -
 /// "llvm.dbg.func.start.".
-void CGDebugInfo::EmitFunctionStart(const char *Name, QualType FnType,
+void CGDebugInfo::EmitFunctionStart(llvm::StringRef Name, QualType FnType,
                                     llvm::Function *Fn,
                                     CGBuilderTy &Builder) {
-  const char *LinkageName = Name;
+  llvm::StringRef LinkageName(Name);
 
   // Skip the asm prefix if it exists.
   //
   // FIXME: This should probably be the unmangled name?
   if (Name[0] == '\01')
-    ++Name;
+    Name = Name.substr(1);
 
   // FIXME: Why is this using CurLoc???
   llvm::DICompileUnit Unit = getOrCreateCompileUnit(CurLoc);
index b44d2c1ac8fe0842f658e0307595417377af6f03..7df2a6247b4cafc12483b7d86e43e7733bdd79c0 100644 (file)
@@ -93,7 +93,7 @@ public:
 
   /// EmitFunctionStart - Emit a call to llvm.dbg.function.start to indicate
   /// start of a new function.
-  void EmitFunctionStart(const char *Name, QualType FnType,
+  void EmitFunctionStart(llvm::StringRef Name, QualType FnType,
                          llvm::Function *Fn, CGBuilderTy &Builder);
 
   /// EmitRegionStart - Emit a call to llvm.dbg.region.start to indicate start
index 7df2380ad42df1add37afa4a218892c2e8431f7f..923f1f8a1477ef5eef14a20a76892e8a67af4fca 100644 (file)
@@ -361,7 +361,7 @@ void CodeGenFunction::EmitLocalBlockVarDecl(const VarDecl &D) {
       if (isByRef)
         LTy = BuildByRefType(&D);
       llvm::AllocaInst *Alloc = CreateTempAlloca(LTy);
-      Alloc->setName(D.getNameAsString().c_str());
+      Alloc->setName(D.getNameAsString());
 
       Align = getContext().getDeclAlignInBytes(&D);
       if (isByRef)
index 78aa95686a2ed845d8458fa519e3bc4acf64bfb1..4b32999020c3ec79f7ce40bb1178658f3d614b0d 100644 (file)
@@ -194,10 +194,7 @@ void CodeGenFunction::StartFunction(GlobalDecl GD, QualType RetTy,
       DI->EmitFunctionStart(CGM.getMangledName(GD), FnType, CurFn, Builder);
     } else {
       // Just use LLVM function name.
-
-      // FIXME: Remove unnecessary conversion to std::string when API settles.
-      DI->EmitFunctionStart(std::string(Fn->getName()).c_str(),
-                            FnType, CurFn, Builder);
+      DI->EmitFunctionStart(Fn->getName(), FnType, CurFn, Builder);
     }
   }