[ASan] Fix the test for __asan_gen_ globals and actually fix http://llvm.org/bugs/show_bug.cgi?id=17976

by setting the correct linkage (as stated in the bug).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198018 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Alexander Potapenko 2013-12-25 16:46:27 +00:00
parent c58d98777c
commit b09f505445

View File

@ -562,13 +562,13 @@ static GlobalVariable *createPrivateGlobalForString(
Module &M, StringRef Str, bool AllowMerging) {
Constant *StrConst = ConstantDataArray::getString(M.getContext(), Str);
// For module-local strings that can be merged with another one we set the
// internal linkage and the unnamed_addr attribute.
// private linkage and the unnamed_addr attribute.
// Non-mergeable strings are made linker_private to remove them from the
// symbol table. "private" linkage doesn't work for Darwin, where the
// "L"-prefixed globals end up in __TEXT,__const section
// (see http://llvm.org/bugs/show_bug.cgi?id=17976 for more info).
GlobalValue::LinkageTypes linkage =
AllowMerging ? GlobalValue::InternalLinkage
AllowMerging ? GlobalValue::PrivateLinkage
: GlobalValue::LinkerPrivateLinkage;
GlobalVariable *GV =
new GlobalVariable(M, StrConst->getType(), true,