[cfi] Take over existing __cfi_check in CrossDSOCFI.

https://reviews.llvm.org/D31796 will emit a dummy __cfi_check in the
frontend.

llvm-svn: 299805
This commit is contained in:
Evgeniy Stepanov 2017-04-07 23:00:20 +00:00
parent bacee5c04f
commit 349adbacca
1 changed files with 3 additions and 0 deletions

View File

@ -100,6 +100,9 @@ void CrossDSOCFI::buildCFICheck(Module &M) {
"__cfi_check", Type::getVoidTy(Ctx), Type::getInt64Ty(Ctx),
Type::getInt8PtrTy(Ctx), Type::getInt8PtrTy(Ctx), nullptr);
Function *F = dyn_cast<Function>(C);
// Take over the existing function. The frontend emits a weak stub so that the
// linker knows about the symbol; this pass replaces the function body.
F->deleteBody();
F->setAlignment(4096);
auto args = F->arg_begin();
Value &CallSiteTypeId = *(args++);