reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/CodeGen/CGObjCRuntime.cpp
  150     Cont = CGF.getJumpDestInCurrentScope("eh.cont");
  152   bool useFunclets = EHPersonality::get(CGF).usesFuncletPads();
  157       FinallyInfo.enter(CGF, Finally->getFinallyBody(),
  173       Handler.Block = CGF.createBasicBlock("catch");
  188     EHCatchScope *Catch = CGF.EHStack.pushCatch(Handlers.size());
  196         if (!CGF.CurSEHParent)
  197             CGF.CurSEHParent = cast<NamedDecl>(CGF.CurFuncDecl);
  197             CGF.CurSEHParent = cast<NamedDecl>(CGF.CurFuncDecl);
  200         HelperCGF.startOutlinedSEHHelper(CGF, /*isFilter*/false, FinallyBlock);
  211         CGF.pushSEHCleanup(NormalAndEHCleanup, FinallyFunc);
  216   CGF.EmitStmt(S.getTryBody());
  220     CGF.popCatchScope();
  223   CGBuilderTy::InsertPoint SavedIP = CGF.Builder.saveAndClearIP();
  229     CGF.EmitBlock(Handler.Block);
  231     SaveAndRestore<llvm::Instruction *> RestoreCurrentFuncletPad(CGF.CurrentFuncletPad);
  234         CGF.CurrentFuncletPad = CPI;
  235         CPI->setOperand(2, CGF.getExceptionSlot().getPointer());
  237     llvm::Value *RawExn = CGF.getExceptionFromSlot();
  242       Exn = CGF.EmitNounwindRuntimeCall(beginCatchFn, RawExn, "exn.adjusted");
  244     CodeGenFunction::LexicalScope cleanups(CGF, Handler.Body->getSourceRange());
  250       CGF.EHStack.pushCleanup<CallObjCEndCatch>(NormalAndEHCleanup,
  257       llvm::Type *CatchType = CGF.ConvertType(CatchParam->getType());
  258       llvm::Value *CastExn = CGF.Builder.CreateBitCast(Exn, CatchType);
  260       CGF.EmitAutoVarDecl(*CatchParam);
  261       EmitInitOfCatchParam(CGF, CastExn, CatchParam);
  264         CGF.EHStack.pushCleanup<CatchRetScope>(NormalCleanup, CPI);
  266     CGF.ObjCEHValueStack.push_back(Exn);
  267     CGF.EmitStmt(Handler.Body);
  268     CGF.ObjCEHValueStack.pop_back();
  273     CGF.EmitBranchThroughCleanup(Cont);
  277   CGF.Builder.restoreIP(SavedIP);
  281     FinallyInfo.exit(CGF);
  284     CGF.EmitBlock(Cont.getBlock());