aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/ModuleUtils.cpp
diff options
context:
space:
mode:
authorAlex Shlyapnikov <alekseys@google.com>2017-03-27 23:11:50 +0000
committerAlex Shlyapnikov <alekseys@google.com>2017-03-27 23:11:50 +0000
commitbbd5cc63d7be58d8f63bc4a3cac4c0769efc6337 (patch)
tree76fe1fb870abc892886dec45a39df4e824eec5c5 /llvm/lib/Transforms/Utils/ModuleUtils.cpp
parent09171aa31fda68c219b5a8da83d7bc77859c6ba5 (diff)
downloadllvm-bbd5cc63d7be58d8f63bc4a3cac4c0769efc6337.zip
llvm-bbd5cc63d7be58d8f63bc4a3cac4c0769efc6337.tar.gz
llvm-bbd5cc63d7be58d8f63bc4a3cac4c0769efc6337.tar.bz2
Revert "[asan] Delay creation of asan ctor."
Speculative revert. Some libfuzzer tests are affected. This reverts commit r298731. llvm-svn: 298890
Diffstat (limited to 'llvm/lib/Transforms/Utils/ModuleUtils.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/ModuleUtils.cpp18
1 files changed, 5 insertions, 13 deletions
diff --git a/llvm/lib/Transforms/Utils/ModuleUtils.cpp b/llvm/lib/Transforms/Utils/ModuleUtils.cpp
index dbe42c2..617c8f7 100644
--- a/llvm/lib/Transforms/Utils/ModuleUtils.cpp
+++ b/llvm/lib/Transforms/Utils/ModuleUtils.cpp
@@ -138,17 +138,6 @@ Function *llvm::checkSanitizerInterfaceFunction(Constant *FuncOrBitcast) {
report_fatal_error(Err);
}
-Function *llvm::declareSanitizerInitFunction(Module &M, StringRef InitName,
- ArrayRef<Type *> InitArgTypes) {
- assert(!InitName.empty() && "Expected init function name");
- Function *F = checkSanitizerInterfaceFunction(M.getOrInsertFunction(
- InitName,
- FunctionType::get(Type::getVoidTy(M.getContext()), InitArgTypes, false),
- AttributeList()));
- F->setLinkage(Function::ExternalLinkage);
- return F;
-}
-
std::pair<Function *, Function *> llvm::createSanitizerCtorAndInitFunctions(
Module &M, StringRef CtorName, StringRef InitName,
ArrayRef<Type *> InitArgTypes, ArrayRef<Value *> InitArgs,
@@ -156,13 +145,16 @@ std::pair<Function *, Function *> llvm::createSanitizerCtorAndInitFunctions(
assert(!InitName.empty() && "Expected init function name");
assert(InitArgs.size() == InitArgTypes.size() &&
"Sanitizer's init function expects different number of arguments");
- Function *InitFunction =
- declareSanitizerInitFunction(M, InitName, InitArgTypes);
Function *Ctor = Function::Create(
FunctionType::get(Type::getVoidTy(M.getContext()), false),
GlobalValue::InternalLinkage, CtorName, &M);
BasicBlock *CtorBB = BasicBlock::Create(M.getContext(), "", Ctor);
IRBuilder<> IRB(ReturnInst::Create(M.getContext(), CtorBB));
+ Function *InitFunction =
+ checkSanitizerInterfaceFunction(M.getOrInsertFunction(
+ InitName, FunctionType::get(IRB.getVoidTy(), InitArgTypes, false),
+ AttributeList()));
+ InitFunction->setLinkage(Function::ExternalLinkage);
IRB.CreateCall(InitFunction, InitArgs);
if (!VersionCheckName.empty()) {
Function *VersionCheckFunction =