]> granicus.if.org Git - clang/commitdiff
Switch to SmallString::str from SmallString::c_str.
authorDaniel Dunbar <daniel@zuster.org>
Wed, 19 Aug 2009 20:04:03 +0000 (20:04 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 19 Aug 2009 20:04:03 +0000 (20:04 +0000)
 - Several FIXMEs due to non-Twinification of IRBuilder.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79455 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/Targets.cpp
lib/CodeGen/CGCXX.cpp
lib/CodeGen/CGExprComplex.cpp
lib/Frontend/InitHeaderSearch.cpp
lib/Sema/SemaStmt.cpp

index 571228a80162e3d37dd31ca6fbb10ad2f56efaa9..11937e64b409e21166b14b67656a60357c5ab146 100644 (file)
@@ -18,6 +18,7 @@
 #include "clang/Basic/LangOptions.h"
 #include "llvm/ADT/APFloat.h"
 #include "llvm/ADT/SmallString.h"
+#include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/Triple.h"
 #include "llvm/MC/MCSectionMachO.h"
@@ -27,13 +28,13 @@ using namespace clang;
 //  Common code shared among targets.
 //===----------------------------------------------------------------------===//
 
-static void Define(std::vector<char> &Buf, const char *Macro,
-                   const char *Val = "1") {
+static void Define(std::vector<char> &Buf, const llvm::StringRef &Macro,
+                   const llvm::StringRef &Val = "1") {
   const char *Def = "#define ";
   Buf.insert(Buf.end(), Def, Def+strlen(Def));
-  Buf.insert(Buf.end(), Macro, Macro+strlen(Macro));
+  Buf.insert(Buf.end(), Macro.begin(), Macro.end());
   Buf.push_back(' ');
-  Buf.insert(Buf.end(), Val, Val+strlen(Val));
+  Buf.insert(Buf.end(), Val.begin(), Val.end());
   Buf.push_back('\n');
 }
 
@@ -53,11 +54,11 @@ static void DefineStd(std::vector<char> &Buf, const char *MacroName,
   llvm::SmallString<20> TmpStr;
   TmpStr = "__";
   TmpStr += MacroName;
-  Define(Buf, TmpStr.c_str());
+  Define(Buf, TmpStr.str());
 
   // Define __unix__.
   TmpStr += "__";
-  Define(Buf, TmpStr.c_str());
+  Define(Buf, TmpStr.str());
 }
 
 //===----------------------------------------------------------------------===//
index 8fd7523e8e6cfa0b84c4192fcd07ca2748c919a3..32f3a51120edef8335207803bd4b1183ace07fb2 100644 (file)
@@ -143,7 +143,7 @@ CodeGenFunction::EmitStaticCXXBlockVarDeclInit(const VarDecl &D,
     new llvm::GlobalVariable(CGM.getModule(), llvm::Type::getInt64Ty(VMContext), false,
                              GV->getLinkage(),
                              llvm::Constant::getNullValue(llvm::Type::getInt64Ty(VMContext)),
-                             GuardVName.c_str());
+                             GuardVName.str());
   
   // Load the first byte of the guard variable.
   const llvm::Type *PtrTy = llvm::PointerType::get(llvm::Type::getInt8Ty(VMContext), 0);
@@ -683,7 +683,6 @@ llvm::Constant *CodeGenModule::GenerateRtti(const CXXRecordDecl *RD) {
   QualType ClassTy;
   ClassTy = getContext().getTagDeclType(RD);
   mangleCXXRtti(ClassTy, getContext(), Out);
-  const char *Name = OutName.c_str();
   llvm::GlobalVariable::LinkageTypes linktype;
   linktype = llvm::GlobalValue::WeakAnyLinkage;
   std::vector<llvm::Constant *> info;
@@ -698,7 +697,7 @@ llvm::Constant *CodeGenModule::GenerateRtti(const CXXRecordDecl *RD) {
   llvm::ArrayType *type = llvm::ArrayType::get(Ptr8Ty, info.size());
   C = llvm::ConstantArray::get(type, info);
   Rtti = new llvm::GlobalVariable(getModule(), type, true, linktype, C,
-                                  Name);
+                                  Out.str());
   Rtti = llvm::ConstantExpr::getBitCast(Rtti, Ptr8Ty);
   return Rtti;
 }
@@ -876,7 +875,6 @@ llvm::Value *CodeGenFunction::GenerateVtable(const CXXRecordDecl *RD) {
   QualType ClassTy;
   ClassTy = getContext().getTagDeclType(RD);
   mangleCXXVtable(ClassTy, getContext(), Out);
-  const char *Name = OutName.c_str();
   llvm::GlobalVariable::LinkageTypes linktype;
   linktype = llvm::GlobalValue::WeakAnyLinkage;
   std::vector<llvm::Constant *> methods;
@@ -898,7 +896,7 @@ llvm::Value *CodeGenFunction::GenerateVtable(const CXXRecordDecl *RD) {
   llvm::ArrayType *type = llvm::ArrayType::get(Ptr8Ty, methods.size());
   C = llvm::ConstantArray::get(type, methods);
   llvm::Value *vtable = new llvm::GlobalVariable(CGM.getModule(), type, true,
-                                                 linktype, C, Name);
+                                                 linktype, C, Out.str());
   vtable = Builder.CreateBitCast(vtable, Ptr8Ty);
   vtable = Builder.CreateGEP(vtable,
                        llvm::ConstantInt::get(llvm::Type::getInt64Ty(VMContext),
index b23588cfce950aeabc473ae6195c0f7c62cd9f0f..ab8ccfbdbfc68cf1a13828faf33ef01af80adcc2 100644 (file)
@@ -268,21 +268,28 @@ ComplexPairTy ComplexExprEmitter::EmitLoadOfComplex(llvm::Value *SrcPtr,
   llvm::Value *Real=0, *Imag=0;
 
   if (!IgnoreReal) {
+    // FIXME: Clean this up once builder takes Twine/StringRef.
     Name += ".realp";
-    llvm::Value *RealPtr = Builder.CreateStructGEP(SrcPtr, 0, Name.c_str());
+    llvm::Value *RealPtr = Builder.CreateStructGEP(SrcPtr, 0,
+                                                   Name.str().str().c_str());
 
     Name.pop_back();  // .realp -> .real
-    Real = Builder.CreateLoad(RealPtr, isVolatile, Name.c_str());
+    // FIXME: Clean this up once builder takes Twine/StringRef.
+    Real = Builder.CreateLoad(RealPtr, isVolatile,
+                              Name.str().str().c_str());
     Name.resize(Name.size()-4); // .real -> .imagp
   }
   
   if (!IgnoreImag) {
     Name += "imagp";
   
-    llvm::Value *ImagPtr = Builder.CreateStructGEP(SrcPtr, 1, Name.c_str());
+    // FIXME: Clean this up once builder takes Twine/StringRef.
+    llvm::Value *ImagPtr = Builder.CreateStructGEP(SrcPtr, 1,
+                                                   Name.str().str().c_str());
 
     Name.pop_back();  // .imagp -> .imag
-    Imag = Builder.CreateLoad(ImagPtr, isVolatile, Name.c_str());
+    // FIXME: Clean this up once builder takes Twine/StringRef.
+    Imag = Builder.CreateLoad(ImagPtr, isVolatile, Name.str().str().c_str());
   }
   return ComplexPairTy(Real, Imag);
 }
index 1507ea56e5a3488b0e34babd9965a4028e05d814..ad070cdb4773384c5ab6c35ba173d3c86a01fff8 100644 (file)
@@ -75,8 +75,8 @@ void InitHeaderSearch::AddPath(const std::string &Path, IncludeDirGroup Group,
   }
   
   if (Verbose)
-    fprintf(stderr, "ignoring nonexistent directory \"%s\"\n",
-            MappedPath.c_str());
+    llvm::errs() << "ignoring nonexistent directory \""
+                 << MappedPath.str() << "\"\n";
 }
 
 
index c5841e6474b4403b8acd6dbd3763eca87811aaab..19a802e452dbc02e220bbf213f3fd7e2abb06b3e 100644 (file)
@@ -1082,13 +1082,13 @@ Sema::OwningStmtResult Sema::ActOnAsmStmt(SourceLocation AsmLoc,
       return StmtError(Diag(Literal->getLocStart(),diag::err_asm_wide_character)
         << Literal->getSourceRange());
 
-    llvm::SmallString<16> Clobber(Literal->getStrData(),
-                                  Literal->getStrData() +
-                                  Literal->getByteLength());
+    std::string Clobber(Literal->getStrData(),
+                        Literal->getStrData() +
+                        Literal->getByteLength());
 
     if (!Context.Target.isValidGCCRegisterName(Clobber.c_str()))
       return StmtError(Diag(Literal->getLocStart(),
-                  diag::err_asm_unknown_register_name) << Clobber.c_str());
+                  diag::err_asm_unknown_register_name) << Clobber);
   }
 
   constraints.release();