From: Nick Lewycky Date: Mon, 13 Feb 2012 23:45:02 +0000 (+0000) Subject: Mark the cxa_guard_{abort,acquire,release} functions nounwind. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e76872e81ea32fbc863d8d7ef6eadc91a8f8673b;p=clang Mark the cxa_guard_{abort,acquire,release} functions nounwind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150435 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/ItaniumCXXABI.cpp b/lib/CodeGen/ItaniumCXXABI.cpp index 8dee17a38c..a8b9942882 100644 --- a/lib/CodeGen/ItaniumCXXABI.cpp +++ b/lib/CodeGen/ItaniumCXXABI.cpp @@ -979,7 +979,8 @@ static llvm::Constant *getGuardAcquireFn(CodeGenModule &CGM, llvm::FunctionType::get(CGM.getTypes().ConvertType(CGM.getContext().IntTy), GuardPtrTy, /*isVarArg=*/false); - return CGM.CreateRuntimeFunction(FTy, "__cxa_guard_acquire"); + return CGM.CreateRuntimeFunction(FTy, "__cxa_guard_acquire", + llvm::Attribute::NoUnwind); } static llvm::Constant *getGuardReleaseFn(CodeGenModule &CGM, @@ -988,7 +989,8 @@ static llvm::Constant *getGuardReleaseFn(CodeGenModule &CGM, llvm::FunctionType *FTy = llvm::FunctionType::get(CGM.VoidTy, GuardPtrTy, /*isVarArg=*/false); - return CGM.CreateRuntimeFunction(FTy, "__cxa_guard_release"); + return CGM.CreateRuntimeFunction(FTy, "__cxa_guard_release", + llvm::Attribute::NoUnwind); } static llvm::Constant *getGuardAbortFn(CodeGenModule &CGM, @@ -997,7 +999,8 @@ static llvm::Constant *getGuardAbortFn(CodeGenModule &CGM, llvm::FunctionType *FTy = llvm::FunctionType::get(CGM.VoidTy, GuardPtrTy, /*isVarArg=*/false); - return CGM.CreateRuntimeFunction(FTy, "__cxa_guard_abort"); + return CGM.CreateRuntimeFunction(FTy, "__cxa_guard_abort", + llvm::Attribute::NoUnwind); } namespace {