forked from OSchip/llvm-project
Remove the overload of GetAddrOfConstantString method
llvm-svn: 210214
This commit is contained in:
parent
ba78c15c9d
commit
adc9037b88
|
@ -237,9 +237,8 @@ protected:
|
|||
NameAndAttributes += TypeStr;
|
||||
NameAndAttributes += '\0';
|
||||
NameAndAttributes += PD->getNameAsString();
|
||||
NameAndAttributes += '\0';
|
||||
return llvm::ConstantExpr::getGetElementPtr(
|
||||
CGM.GetAddrOfConstantString(NameAndAttributes), Zeros);
|
||||
CGM.GetAddrOfConstantCString(NameAndAttributes), Zeros);
|
||||
}
|
||||
return MakeConstantString(PD->getNameAsString());
|
||||
}
|
||||
|
|
|
@ -2778,17 +2778,13 @@ llvm::StringMapEntry<llvm::GlobalVariable *> *CodeGenModule::getConstantStringMa
|
|||
return &ConstantStringMap->GetOrCreateValue(Str);
|
||||
}
|
||||
|
||||
/// GetAddrOfConstantString - Returns a pointer to a character array
|
||||
/// containing the literal. This contents are exactly that of the
|
||||
/// given string, i.e. it will not be null terminated automatically;
|
||||
/// see GetAddrOfConstantCString. Note that whether the result is
|
||||
/// actually a pointer to an LLVM constant depends on
|
||||
/// Feature.WriteableStrings.
|
||||
///
|
||||
/// GetAddrOfConstantCString - Returns a pointer to a character array containing
|
||||
/// the literal and a terminating '\0' character.
|
||||
/// The result has pointer to array type.
|
||||
llvm::Constant *CodeGenModule::GetAddrOfConstantString(StringRef Str,
|
||||
const char *GlobalName,
|
||||
unsigned Alignment) {
|
||||
llvm::Constant *CodeGenModule::GetAddrOfConstantCString(const std::string &Str,
|
||||
const char *GlobalName,
|
||||
unsigned Alignment) {
|
||||
StringRef StrWithNull(Str.c_str(), Str.size() + 1);
|
||||
if (Alignment == 0) {
|
||||
Alignment = getContext()
|
||||
.getAlignOfGlobalVarInChars(getContext().CharTy)
|
||||
|
@ -2798,7 +2794,7 @@ llvm::Constant *CodeGenModule::GetAddrOfConstantString(StringRef Str,
|
|||
// Don't share any string literals if strings aren't constant.
|
||||
llvm::StringMapEntry<llvm::GlobalVariable *> *Entry = nullptr;
|
||||
if (!LangOpts.WritableStrings) {
|
||||
Entry = getConstantStringMapEntry(Str, 1);
|
||||
Entry = getConstantStringMapEntry(StrWithNull, 1);
|
||||
if (auto GV = Entry->getValue()) {
|
||||
if (Alignment > GV->getAlignment())
|
||||
GV->setAlignment(Alignment);
|
||||
|
@ -2806,9 +2802,8 @@ llvm::Constant *CodeGenModule::GetAddrOfConstantString(StringRef Str,
|
|||
}
|
||||
}
|
||||
|
||||
// Create Constant for this string literal. Don't add a '\0'.
|
||||
llvm::Constant *C =
|
||||
llvm::ConstantDataArray::getString(getLLVMContext(), Str, false);
|
||||
llvm::ConstantDataArray::getString(getLLVMContext(), StrWithNull, false);
|
||||
// Get the default prefix if a name wasn't specified.
|
||||
if (!GlobalName)
|
||||
GlobalName = ".str";
|
||||
|
@ -2820,16 +2815,6 @@ llvm::Constant *CodeGenModule::GetAddrOfConstantString(StringRef Str,
|
|||
return GV;
|
||||
}
|
||||
|
||||
/// GetAddrOfConstantCString - Returns a pointer to a character
|
||||
/// array containing the literal and a terminating '\0'
|
||||
/// character. The result has pointer to array type.
|
||||
llvm::Constant *CodeGenModule::GetAddrOfConstantCString(const std::string &Str,
|
||||
const char *GlobalName,
|
||||
unsigned Alignment) {
|
||||
StringRef StrWithNull(Str.c_str(), Str.size() + 1);
|
||||
return GetAddrOfConstantString(StrWithNull, GlobalName, Alignment);
|
||||
}
|
||||
|
||||
llvm::Constant *CodeGenModule::GetAddrOfGlobalTemporary(
|
||||
const MaterializeTemporaryExpr *E, const Expr *Init) {
|
||||
assert((E->getStorageDuration() == SD_Static ||
|
||||
|
|
|
@ -746,28 +746,14 @@ public:
|
|||
/// Return a pointer to a constant array for the given ObjCEncodeExpr node.
|
||||
llvm::Constant *GetAddrOfConstantStringFromObjCEncode(const ObjCEncodeExpr *);
|
||||
|
||||
/// Returns a pointer to a character array containing the literal. This
|
||||
/// contents are exactly that of the given string, i.e. it will not be null
|
||||
/// terminated automatically; see GetAddrOfConstantCString. Note that whether
|
||||
/// the result is actually a pointer to an LLVM constant depends on
|
||||
/// Feature.WriteableStrings.
|
||||
///
|
||||
/// The result has pointer to array type.
|
||||
///
|
||||
/// \param GlobalName If provided, the name to use for the global
|
||||
/// (if one is created).
|
||||
llvm::Constant *GetAddrOfConstantString(StringRef Str,
|
||||
const char *GlobalName=nullptr,
|
||||
unsigned Alignment=0);
|
||||
|
||||
/// Returns a pointer to a character array containing the literal and a
|
||||
/// terminating '\0' character. The result has pointer to array type.
|
||||
///
|
||||
/// \param GlobalName If provided, the name to use for the global (if one is
|
||||
/// created).
|
||||
llvm::Constant *GetAddrOfConstantCString(const std::string &str,
|
||||
const char *GlobalName=nullptr,
|
||||
unsigned Alignment=0);
|
||||
const char *GlobalName = nullptr,
|
||||
unsigned Alignment = 0);
|
||||
|
||||
/// Returns a pointer to a constant global variable for the given file-scope
|
||||
/// compound literal expression.
|
||||
|
|
Loading…
Reference in New Issue