diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-08-19 20:04:03 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-08-19 20:04:03 +0000 |
commit | 7765934ad7e157b5fcf925792a38e01b1edbcf8a (patch) | |
tree | 82a3bfbc76ef6e41c8a68da4b60afa214006437c | |
parent | d7407dc92c7d19cafce429e7e1cf9819d3fc0b92 (diff) |
Switch to SmallString::str from SmallString::c_str.
- 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
-rw-r--r-- | lib/Basic/Targets.cpp | 13 | ||||
-rw-r--r-- | lib/CodeGen/CGCXX.cpp | 8 | ||||
-rw-r--r-- | lib/CodeGen/CGExprComplex.cpp | 15 | ||||
-rw-r--r-- | lib/Frontend/InitHeaderSearch.cpp | 4 | ||||
-rw-r--r-- | lib/Sema/SemaStmt.cpp | 8 |
5 files changed, 27 insertions, 21 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 571228a801..11937e64b4 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -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()); } //===----------------------------------------------------------------------===// diff --git a/lib/CodeGen/CGCXX.cpp b/lib/CodeGen/CGCXX.cpp index 8fd7523e8e..32f3a51120 100644 --- a/lib/CodeGen/CGCXX.cpp +++ b/lib/CodeGen/CGCXX.cpp @@ -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), diff --git a/lib/CodeGen/CGExprComplex.cpp b/lib/CodeGen/CGExprComplex.cpp index b23588cfce..ab8ccfbdbf 100644 --- a/lib/CodeGen/CGExprComplex.cpp +++ b/lib/CodeGen/CGExprComplex.cpp @@ -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); } diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp index 1507ea56e5..ad070cdb47 100644 --- a/lib/Frontend/InitHeaderSearch.cpp +++ b/lib/Frontend/InitHeaderSearch.cpp @@ -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"; } diff --git a/lib/Sema/SemaStmt.cpp b/lib/Sema/SemaStmt.cpp index c5841e6474..19a802e452 100644 --- a/lib/Sema/SemaStmt.cpp +++ b/lib/Sema/SemaStmt.cpp @@ -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(); |