r289829 - CodeGen: ubsan is built static on windows, give handlers local storage
Saleem Abdulrasool via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 15 08:30:20 PST 2016
Author: compnerd
Date: Thu Dec 15 10:30:20 2016
New Revision: 289829
URL: http://llvm.org/viewvc/llvm-project?rev=289829&view=rev
Log:
CodeGen: ubsan is built static on windows, give handlers local storage
The UBSAN runtime is built static on Windows. This requires that we give local
storage always. This impacts Windows where the linker would otherwise have to
generate a thunk to access the symbol via the IAT. This should repair the
windows clang build bots.
Modified:
cfe/trunk/lib/CodeGen/CGExpr.cpp
Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExpr.cpp?rev=289829&r1=289828&r2=289829&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGExpr.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExpr.cpp Thu Dec 15 10:30:20 2016
@@ -2545,7 +2545,8 @@ static void emitCheckHandlerCall(CodeGen
llvm::Value *Fn = CGF.CGM.CreateRuntimeFunction(
FnType, FnName,
llvm::AttributeSet::get(CGF.getLLVMContext(),
- llvm::AttributeSet::FunctionIndex, B));
+ llvm::AttributeSet::FunctionIndex, B),
+ /*Local=*/true);
llvm::CallInst *HandlerCall = CGF.EmitNounwindRuntimeCall(Fn, FnArgs);
if (!MayReturn) {
HandlerCall->setDoesNotReturn();
More information about the cfe-commits
mailing list