forked from OSchip/llvm-project
parent
44cfcb6fb1
commit
e005aa13f1
|
@ -1429,7 +1429,18 @@ void CGObjCMac::EmitTryStmt(CodeGen::CodeGenFunction &CGF,
|
||||||
void CGObjCMac::EmitThrowStmt(CodeGen::CodeGenFunction &CGF,
|
void CGObjCMac::EmitThrowStmt(CodeGen::CodeGenFunction &CGF,
|
||||||
const ObjCAtThrowStmt &S)
|
const ObjCAtThrowStmt &S)
|
||||||
{
|
{
|
||||||
CGF.ErrorUnsupported(&S, "@throw statement");
|
llvm::Value *ExceptionAsObject;
|
||||||
|
|
||||||
|
if (const Expr *ThrowExpr = S.getThrowExpr()) {
|
||||||
|
llvm::Value *Exception = CGF.EmitScalarExpr(ThrowExpr);
|
||||||
|
ExceptionAsObject =
|
||||||
|
CGF.Builder.CreateBitCast(Exception, ObjCTypes.ObjectPtrTy, "tmp");
|
||||||
|
} else {
|
||||||
|
assert(0 && "FIXME: rethrows not supported!");
|
||||||
|
}
|
||||||
|
|
||||||
|
CGF.Builder.CreateCall(ObjCTypes.ExceptionThrowFn, ExceptionAsObject);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* *** Private Interface *** */
|
/* *** Private Interface *** */
|
||||||
|
|
Loading…
Reference in New Issue