From: John McCall Date: Sat, 16 Oct 2010 16:34:08 +0000 (+0000) Subject: Coding by inspection has its problems. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fd186ac63b427ed65bf5972ef225961afe7893ff;p=clang Coding by inspection has its problems. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116672 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGObjCMac.cpp b/lib/CodeGen/CGObjCMac.cpp index acb3ecebd6..72953ce924 100644 --- a/lib/CodeGen/CGObjCMac.cpp +++ b/lib/CodeGen/CGObjCMac.cpp @@ -6167,6 +6167,8 @@ void CGObjCNonFragileABIMac::EmitThrowStmt(CodeGen::CodeGenFunction &CGF, const ObjCAtThrowStmt &S) { if (const Expr *ThrowExpr = S.getThrowExpr()) { llvm::Value *Exception = CGF.EmitScalarExpr(ThrowExpr); + Exception = CGF.Builder.CreateBitCast(Exception, ObjCTypes.ObjectPtrTy, + "tmp"); llvm::Value *Args[] = { Exception }; CGF.EmitCallOrInvoke(ObjCTypes.getExceptionThrowFn(), Args, Args+1) diff --git a/test/CodeGenObjC/exceptions-nonfragile.m b/test/CodeGenObjC/exceptions-nonfragile.m index 41cda2c0a9..57ed1d9da9 100644 --- a/test/CodeGenObjC/exceptions-nonfragile.m +++ b/test/CodeGenObjC/exceptions-nonfragile.m @@ -11,3 +11,7 @@ void protos() { @throw; } } + +void throwing() { + @throw(@"error!"); +}