Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
Show First 20 Lines • Show All 2,300 Lines • ▼ Show 20 Lines | for (size_t i = 0; i < n; i++) { | ||||
GlobalValue::LinkageTypes Linkage = G->getLinkage(); | GlobalValue::LinkageTypes Linkage = G->getLinkage(); | ||||
if (G->isConstant() && Linkage == GlobalValue::PrivateLinkage) | if (G->isConstant() && Linkage == GlobalValue::PrivateLinkage) | ||||
Linkage = GlobalValue::InternalLinkage; | Linkage = GlobalValue::InternalLinkage; | ||||
GlobalVariable *NewGlobal = new GlobalVariable( | GlobalVariable *NewGlobal = new GlobalVariable( | ||||
M, NewTy, G->isConstant(), Linkage, NewInitializer, "", G, | M, NewTy, G->isConstant(), Linkage, NewInitializer, "", G, | ||||
G->getThreadLocalMode(), G->getAddressSpace()); | G->getThreadLocalMode(), G->getAddressSpace()); | ||||
NewGlobal->copyAttributesFrom(G); | NewGlobal->copyAttributesFrom(G); | ||||
NewGlobal->setComdat(G->getComdat()); | NewGlobal->setComdat(G->getComdat()); | ||||
NewGlobal->setAlignment(MaybeAlign(getMinRedzoneSizeForGlobal())); | NewGlobal->setAlignment(Align(getMinRedzoneSizeForGlobal())); | ||||
// Don't fold globals with redzones. ODR violation detector and redzone | // Don't fold globals with redzones. ODR violation detector and redzone | ||||
// poisoning implicitly creates a dependence on the global's address, so it | // poisoning implicitly creates a dependence on the global's address, so it | ||||
// is no longer valid for it to be marked unnamed_addr. | // is no longer valid for it to be marked unnamed_addr. | ||||
NewGlobal->setUnnamedAddr(GlobalValue::UnnamedAddr::None); | NewGlobal->setUnnamedAddr(GlobalValue::UnnamedAddr::None); | ||||
// Move null-terminated C strings to "__asan_cstring" section on Darwin. | // Move null-terminated C strings to "__asan_cstring" section on Darwin. | ||||
if (TargetTriple.isOSBinFormatMachO() && !G->hasSection() && | if (TargetTriple.isOSBinFormatMachO() && !G->hasSection() && | ||||
G->isConstant()) { | G->isConstant()) { | ||||
▲ Show 20 Lines • Show All 1,182 Lines • Show Last 20 Lines |