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