forked from OSchip/llvm-project
Revert "[MS] Use mangled names and comdats for string merging with ASan"
Depends on r334313, which has been reverted in r335681. llvm-svn: 335684
This commit is contained in:
parent
32919a5861
commit
c69e067668
|
@ -4155,13 +4155,15 @@ CodeGenModule::GetAddrOfConstantStringFromLiteral(const StringLiteral *S,
|
|||
StringRef GlobalVariableName;
|
||||
llvm::GlobalValue::LinkageTypes LT;
|
||||
|
||||
// Mangle the string literal if that's how the ABI merges duplicate strings.
|
||||
// Don't do it if they are writable, since we don't want writes in one TU to
|
||||
// affect strings in another.
|
||||
if (getCXXABI().getMangleContext().shouldMangleStringLiteral(S) &&
|
||||
!LangOpts.WritableStrings) {
|
||||
// Mangle the string literal if the ABI allows for it. However, we cannot
|
||||
// do this if we are compiling with ASan or -fwritable-strings because they
|
||||
// rely on strings having normal linkage.
|
||||
if (!LangOpts.WritableStrings &&
|
||||
!LangOpts.Sanitize.has(SanitizerKind::Address) &&
|
||||
getCXXABI().getMangleContext().shouldMangleStringLiteral(S)) {
|
||||
llvm::raw_svector_ostream Out(MangledNameBuffer);
|
||||
getCXXABI().getMangleContext().mangleStringLiteral(S, Out);
|
||||
|
||||
LT = llvm::GlobalValue::LinkOnceODRLinkage;
|
||||
GlobalVariableName = MangledNameBuffer;
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue