From: Anders Carlsson Date: Mon, 2 Mar 2009 19:58:15 +0000 (+0000) Subject: inline asm calls should be nounwind. Chris, please review. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bc0822bad87ac4d2dcac8e1b71960301656a2699;p=clang inline asm calls should be nounwind. Chris, please review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65866 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGStmt.cpp b/lib/CodeGen/CGStmt.cpp index 307dccff2f..cbd8a897bd 100644 --- a/lib/CodeGen/CGStmt.cpp +++ b/lib/CodeGen/CGStmt.cpp @@ -1003,7 +1003,10 @@ void CodeGenFunction::EmitAsmStmt(const AsmStmt &S) { llvm::InlineAsm *IA = llvm::InlineAsm::get(FTy, AsmString, Constraints, S.isVolatile() || S.getNumOutputs() == 0); - llvm::Value *Result = Builder.CreateCall(IA, Args.begin(), Args.end(), ""); + llvm::CallInst *Result + = Builder.CreateCall(IA, Args.begin(), Args.end(), ""); + Result->addAttribute(~0, llvm::Attribute::NoUnwind); + if (ResultAddr) // FIXME: volatility Builder.CreateStore(Result, ResultAddr); }