summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-08-19 20:04:03 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-08-19 20:04:03 +0000
commit7765934ad7e157b5fcf925792a38e01b1edbcf8a (patch)
tree82a3bfbc76ef6e41c8a68da4b60afa214006437c
parentd7407dc92c7d19cafce429e7e1cf9819d3fc0b92 (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.cpp13
-rw-r--r--lib/CodeGen/CGCXX.cpp8
-rw-r--r--lib/CodeGen/CGExprComplex.cpp15
-rw-r--r--lib/Frontend/InitHeaderSearch.cpp4
-rw-r--r--lib/Sema/SemaStmt.cpp8
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();