From 349adbaccace178575426e1e54ccc6c090a9951e Mon Sep 17 00:00:00 2001 From: Evgeniy Stepanov Date: Fri, 7 Apr 2017 23:00:20 +0000 Subject: [PATCH] [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 --- llvm/lib/Transforms/IPO/CrossDSOCFI.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp b/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp index ba2e60dee3bc..e8738e70257b 100644 --- a/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp +++ b/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp @@ -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(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++); -- 2.34.1