eliminate the "string" form of ConstantArray::get, using

ConstantDataArray::getString instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149365 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2012-01-31 06:18:43 +00:00
parent f98743a49d
commit 6a89228fac
7 changed files with 8 additions and 23 deletions

View File

@ -352,17 +352,6 @@ public:
// ConstantArray accessors // ConstantArray accessors
static Constant *get(ArrayType *T, ArrayRef<Constant*> V); static Constant *get(ArrayType *T, ArrayRef<Constant*> V);
/// This method constructs a ConstantArray and initializes it with a text
/// string. The default behavior (AddNull==true) causes a null terminator to
/// be placed at the end of the array. This effectively increases the length
/// of the array by one (you've been warned). However, in some situations
/// this is not desired so if AddNull==false then the string is copied without
/// null termination.
// FIXME Remove this.
static Constant *get(LLVMContext &Context, StringRef Initializer,
bool AddNull = true);
/// Transparently provide more efficient getOperand methods. /// Transparently provide more efficient getOperand methods.
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Constant); DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Constant);

View File

@ -2018,7 +2018,8 @@ bool LLParser::ParseValID(ValID &ID, PerFunctionState *PFS) {
} }
case lltok::kw_c: // c "foo" case lltok::kw_c: // c "foo"
Lex.Lex(); Lex.Lex();
ID.ConstantVal = ConstantArray::get(Context, Lex.getStrVal(), false); ID.ConstantVal = ConstantDataArray::getString(Context, Lex.getStrVal(),
false);
if (ParseToken(lltok::StringConstant, "expected string")) return true; if (ParseToken(lltok::StringConstant, "expected string")) return true;
ID.Kind = ValID::t_Constant; ID.Kind = ValID::t_Constant;
return false; return false;

View File

@ -213,7 +213,7 @@ const char *AddressSanitizer::getPassName() const {
// Create a constant for Str so that we can pass it to the run-time lib. // Create a constant for Str so that we can pass it to the run-time lib.
static GlobalVariable *createPrivateGlobalForString(Module &M, StringRef Str) { static GlobalVariable *createPrivateGlobalForString(Module &M, StringRef Str) {
Constant *StrConst = ConstantArray::get(M.getContext(), Str); Constant *StrConst = ConstantDataArray::getString(M.getContext(), Str);
return new GlobalVariable(M, StrConst->getType(), true, return new GlobalVariable(M, StrConst->getType(), true,
GlobalValue::PrivateLinkage, StrConst, ""); GlobalValue::PrivateLinkage, StrConst, "");
} }

View File

@ -780,12 +780,6 @@ Constant *ConstantArray::get(ArrayType *Ty, ArrayRef<Constant*> V) {
return pImpl->ArrayConstants.getOrCreate(Ty, V); return pImpl->ArrayConstants.getOrCreate(Ty, V);
} }
// FIXME: Remove this method.
Constant *ConstantArray::get(LLVMContext &Context, StringRef Str,
bool AddNull) {
return ConstantDataArray::getString(Context, Str, AddNull);
}
/// getTypeForElements - Return an anonymous struct type to use for a constant /// getTypeForElements - Return an anonymous struct type to use for a constant
/// with the specified set of elements. The list must not be empty. /// with the specified set of elements. The list must not be empty.
StructType *ConstantStruct::getTypeForElements(LLVMContext &Context, StructType *ConstantStruct::getTypeForElements(LLVMContext &Context,

View File

@ -634,7 +634,7 @@ LLVMValueRef LLVMConstStringInContext(LLVMContextRef C, const char *Str,
LLVMBool DontNullTerminate) { LLVMBool DontNullTerminate) {
/* Inverted the sense of AddNull because ', 0)' is a /* Inverted the sense of AddNull because ', 0)' is a
better mnemonic for null termination than ', 1)'. */ better mnemonic for null termination than ', 1)'. */
return wrap(ConstantArray::get(*unwrap(C), StringRef(Str, Length), return wrap(ConstantDataArray::getString(*unwrap(C), StringRef(Str, Length),
DontNullTerminate == 0)); DontNullTerminate == 0));
} }
LLVMValueRef LLVMConstStructInContext(LLVMContextRef C, LLVMValueRef LLVMConstStructInContext(LLVMContextRef C,

View File

@ -24,7 +24,7 @@ using namespace llvm;
/// specified. If Name is specified, it is the name of the global variable /// specified. If Name is specified, it is the name of the global variable
/// created. /// created.
Value *IRBuilderBase::CreateGlobalString(StringRef Str, const Twine &Name) { Value *IRBuilderBase::CreateGlobalString(StringRef Str, const Twine &Name) {
Constant *StrConstant = ConstantArray::get(Context, Str, true); Constant *StrConstant = ConstantDataArray::getString(Context, Str);
Module &M = *BB->getParent()->getParent(); Module &M = *BB->getParent()->getParent();
GlobalVariable *GV = new GlobalVariable(M, StrConstant->getType(), GlobalVariable *GV = new GlobalVariable(M, StrConstant->getType(),
true, GlobalValue::PrivateLinkage, true, GlobalValue::PrivateLinkage,

View File

@ -820,7 +820,8 @@ static void CleanupAndPrepareModules(BugDriver &BD, Module *&Test,
// Don't forward functions which are external in the test module too. // Don't forward functions which are external in the test module too.
if (TestFn && !TestFn->isDeclaration()) { if (TestFn && !TestFn->isDeclaration()) {
// 1. Add a string constant with its name to the global file // 1. Add a string constant with its name to the global file
Constant *InitArray = ConstantArray::get(F->getContext(), F->getName()); Constant *InitArray =
ConstantDataArray::getString(F->getContext(), F->getName());
GlobalVariable *funcName = GlobalVariable *funcName =
new GlobalVariable(*Safe, InitArray->getType(), true /*isConstant*/, new GlobalVariable(*Safe, InitArray->getType(), true /*isConstant*/,
GlobalValue::InternalLinkage, InitArray, GlobalValue::InternalLinkage, InitArray,