From 93debea55a1c92cc150c93740d2cd864b2a4af97 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Thu, 29 Mar 2018 20:51:30 +0000 Subject: [PATCH] Mark __cfi_check as dso_local. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@328825 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CGExpr.cpp | 1 + test/CodeGen/cfi-icall-cross-dso.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp index f0abf5acfe..36e7da85cc 100644 --- a/lib/CodeGen/CGExpr.cpp +++ b/lib/CodeGen/CGExpr.cpp @@ -3010,6 +3010,7 @@ void CodeGenFunction::EmitCfiCheckStub() { llvm::Function *F = llvm::Function::Create( llvm::FunctionType::get(VoidTy, {Int64Ty, Int8PtrTy, Int8PtrTy}, false), llvm::GlobalValue::WeakAnyLinkage, "__cfi_check", M); + CGM.setDSOLocal(F); llvm::BasicBlock *BB = llvm::BasicBlock::Create(Ctx, "entry", F); // FIXME: consider emitting an intrinsic call like // call void @llvm.cfi_check(i64 %0, i8* %1, i8* %2) diff --git a/test/CodeGen/cfi-icall-cross-dso.c b/test/CodeGen/cfi-icall-cross-dso.c index 0fdf4a2a96..4fe4ba7b58 100644 --- a/test/CodeGen/cfi-icall-cross-dso.c +++ b/test/CodeGen/cfi-icall-cross-dso.c @@ -66,6 +66,9 @@ Fn h1() { inline void foo() {} void bar() { foo(); } +// ITANIUM: define weak void @__cfi_check +// MS: define weak dso_local void @__cfi_check + // CHECK: !{i32 4, !"Cross-DSO CFI", i32 1} // Check that the type entries are correct. -- 2.40.0