reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
4448 CGF.getJumpDestInCurrentScope("finally.end"); 4453 CGF.getJumpDestInCurrentScope("finally.rethrow"); 4463 CGF.EmitScalarExpr(cast<ObjCAtSynchronizedStmt>(S).getSynchExpr()); 4464 SyncArg = CGF.Builder.CreateBitCast(SyncArg, ObjCTypes.ObjectPtrTy); 4465 CGF.EmitNounwindRuntimeCall(ObjCTypes.getSyncEnterFn(), SyncArg); 4467 SyncArgSlot = CGF.CreateTempAlloca(SyncArg->getType(), 4468 CGF.getPointerAlign(), "sync.arg"); 4469 CGF.Builder.CreateStore(SyncArg, SyncArgSlot); 4474 Address ExceptionData = CGF.CreateTempAlloca(ObjCTypes.ExceptionDataTy, 4475 CGF.getPointerAlign(), 4482 FragileHazards Hazards(CGF); 4492 Address CallTryExitVar = CGF.CreateTempAlloca(CGF.Builder.getInt1Ty(), 4492 Address CallTryExitVar = CGF.CreateTempAlloca(CGF.Builder.getInt1Ty(), 4501 CGF.EHStack.pushCleanup<PerformFragileFinally>(NormalAndEHCleanup, &S, 4510 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionTryEnterFn(), 4514 llvm::Constant *Zero = llvm::ConstantInt::get(CGF.Builder.getInt32Ty(), 0); 4516 llvm::Value *SetJmpBuffer = CGF.Builder.CreateGEP( 4519 llvm::CallInst *SetJmpResult = CGF.EmitNounwindRuntimeCall( 4525 llvm::BasicBlock *TryBlock = CGF.createBasicBlock("try"); 4526 llvm::BasicBlock *TryHandler = CGF.createBasicBlock("try.handler"); 4528 CGF.Builder.CreateIsNotNull(SetJmpResult, "did_catch_exception"); 4529 CGF.Builder.CreateCondBr(DidCatch, TryHandler, TryBlock); 4532 CGF.EmitBlock(TryBlock); 4533 CGF.Builder.CreateStore(CGF.Builder.getTrue(), CallTryExitVar); 4533 CGF.Builder.CreateStore(CGF.Builder.getTrue(), CallTryExitVar); 4534 CGF.EmitStmt(isTry ? cast<ObjCAtTryStmt>(S).getTryBody() 4537 CGBuilderTy::InsertPoint TryFallthroughIP = CGF.Builder.saveAndClearIP(); 4540 CGF.EmitBlock(TryHandler); 4549 CGF.Builder.CreateStore(CGF.Builder.getFalse(), CallTryExitVar); 4549 CGF.Builder.CreateStore(CGF.Builder.getFalse(), CallTryExitVar); 4550 CGF.EmitBranchThroughCleanup(FinallyRethrow); 4557 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionExtractFn(), 4562 CGF.ObjCEHValueStack.push_back(Caught); 4573 PropagatingExnVar = CGF.CreateTempAlloca(Caught->getType(), 4574 CGF.getPointerAlign(), 4576 CGF.Builder.CreateStore(Caught, PropagatingExnVar); 4580 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionTryEnterFn(), 4584 CGF.EmitNounwindRuntimeCall(ObjCTypes.getSetJmpFn(), 4589 CGF.Builder.CreateIsNotNull(SetJmpResult, "did_catch_exception"); 4591 CatchBlock = CGF.createBasicBlock("catch"); 4592 CatchHandler = CGF.createBasicBlock("catch_for_catch"); 4593 CGF.Builder.CreateCondBr(Threw, CatchHandler, CatchBlock); 4595 CGF.EmitBlock(CatchBlock); 4598 CGF.Builder.CreateStore(CGF.Builder.getInt1(HasFinally), CallTryExitVar); 4598 CGF.Builder.CreateStore(CGF.Builder.getInt1(HasFinally), CallTryExitVar); 4626 CodeGenFunction::RunCleanupsScope CatchVarCleanups(CGF); 4629 CGF.EmitAutoVarDecl(*CatchParam); 4630 assert(CGF.HaveInsertPoint() && "DeclStmt destroyed insert point?"); 4633 EmitInitOfCatchParam(CGF, Caught, CatchParam); 4636 CGF.EmitStmt(CatchStmt->getCatchBody()); 4641 CGF.EmitBranchThroughCleanup(FinallyEnd); 4653 llvm::Value *Class = EmitClassRef(CGF, IDecl); 4657 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionMatchFn(), 4660 llvm::BasicBlock *MatchedBlock = CGF.createBasicBlock("match"); 4661 llvm::BasicBlock *NextCatchBlock = CGF.createBasicBlock("catch.next"); 4663 CGF.Builder.CreateCondBr(CGF.Builder.CreateIsNotNull(Match, "matched"), 4663 CGF.Builder.CreateCondBr(CGF.Builder.CreateIsNotNull(Match, "matched"), 4667 CGF.EmitBlock(MatchedBlock); 4671 CodeGenFunction::RunCleanupsScope CatchVarCleanups(CGF); 4673 CGF.EmitAutoVarDecl(*CatchParam); 4674 assert(CGF.HaveInsertPoint() && "DeclStmt destroyed insert point?"); 4678 CGF.Builder.CreateBitCast(Caught, 4679 CGF.ConvertType(CatchParam->getType())); 4680 EmitInitOfCatchParam(CGF, Tmp, CatchParam); 4682 CGF.EmitStmt(CatchStmt->getCatchBody()); 4687 CGF.EmitBranchThroughCleanup(FinallyEnd); 4689 CGF.EmitBlock(NextCatchBlock); 4692 CGF.ObjCEHValueStack.pop_back(); 4700 CGF.EmitBranchThroughCleanup(FinallyRethrow); 4704 CGF.EmitBlock(CatchHandler); 4715 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionExtractFn(), 4717 CGF.Builder.CreateStore(NewCaught, PropagatingExnVar); 4720 CGF.Builder.CreateStore(CGF.Builder.getFalse(), CallTryExitVar); 4720 CGF.Builder.CreateStore(CGF.Builder.getFalse(), CallTryExitVar); 4721 CGF.EmitBranchThroughCleanup(FinallyRethrow); 4729 CGF.Builder.restoreIP(TryFallthroughIP); 4730 if (CGF.HaveInsertPoint()) 4731 CGF.Builder.CreateStore(CGF.Builder.getTrue(), CallTryExitVar); 4731 CGF.Builder.CreateStore(CGF.Builder.getTrue(), CallTryExitVar); 4732 CGF.PopCleanupBlock(); 4733 CGF.EmitBlock(FinallyEnd.getBlock(), true); 4736 CGBuilderTy::InsertPoint SavedIP = CGF.Builder.saveAndClearIP(); 4737 CGF.EmitBlock(FinallyRethrow.getBlock(), true); 4738 if (CGF.HaveInsertPoint()) { 4742 PropagatingExn = CGF.Builder.CreateLoad(PropagatingExnVar); 4747 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionExtractFn(), 4752 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionThrowFn(), 4754 CGF.Builder.CreateUnreachable(); 4757 CGF.Builder.restoreIP(SavedIP);