Fix for bug http://llvm.org/PR17427.
Assertion failed: "Computed __func__ length differs from type!" Reworked PredefinedExpr representation with internal StringLiteral field for function declaration. Differential Revision: http://reviews.llvm.org/D5365 llvm-svn: 219393
This commit is contained in:
@@ -2729,7 +2729,8 @@ GenerateStringLiteral(llvm::Constant *C, llvm::GlobalValue::LinkageTypes LT,
|
||||
/// GetAddrOfConstantStringFromLiteral - Return a pointer to a
|
||||
/// constant array for the given string literal.
|
||||
llvm::GlobalVariable *
|
||||
CodeGenModule::GetAddrOfConstantStringFromLiteral(const StringLiteral *S) {
|
||||
CodeGenModule::GetAddrOfConstantStringFromLiteral(const StringLiteral *S,
|
||||
StringRef Name) {
|
||||
auto Alignment =
|
||||
getContext().getAlignOfGlobalVarInChars(S->getType()).getQuantity();
|
||||
|
||||
@@ -2761,7 +2762,7 @@ CodeGenModule::GetAddrOfConstantStringFromLiteral(const StringLiteral *S) {
|
||||
GlobalVariableName = MangledNameBuffer;
|
||||
} else {
|
||||
LT = llvm::GlobalValue::PrivateLinkage;
|
||||
GlobalVariableName = ".str";
|
||||
GlobalVariableName = Name;
|
||||
}
|
||||
|
||||
auto GV = GenerateStringLiteral(C, LT, *this, GlobalVariableName, Alignment);
|
||||
|
||||
Reference in New Issue
Block a user