Lines Matching full:finally
1352 llvm::BasicBlock *EndCatchBB = CGF.createBasicBlock("finally.endcatch"); in Emit()
1354 CGF.createBasicBlock("finally.cleanup.cont"); in Emit()
1357 CGF.Builder.CreateFlagLoad(ForEHVar, "finally.endcatch"); in Emit()
1385 // cleanups in the finally block. in Emit()
1390 // Emit the finally block. in Emit()
1393 // If the end of the finally is reachable, check whether this was in Emit()
1396 llvm::BasicBlock *RethrowBB = CGF.createBasicBlock("finally.rethrow"); in Emit()
1397 llvm::BasicBlock *ContBB = CGF.createBasicBlock("finally.cont"); in Emit()
1400 CGF.Builder.CreateFlagLoad(ForEHVar, "finally.shouldthrow"); in Emit()
1436 /// Enters a finally block for an implementation using zero-cost
1453 // But we can't use the exception slot because the @finally might in enter()
1458 SavedExnVar = CGF.CreateTempAlloca(CGF.Int8PtrTy, "finally.exn"); in enter()
1460 // A finally block is a statement which must be executed on any edge in enter()
1461 // out of a given scope. Unlike a cleanup, the finally block may in enter()
1463 // addition, finally blocks should always be executed, even if there in enter()
1468 // statement to which the finally block might have been attached). in enter()
1469 // The finally block itself is generated in the context of a cleanup in enter()
1472 // Jump destination for performing the finally block on an exception in enter()
1477 // Whether the finally block is being executed for EH purposes. in enter()
1478 ForEHVar = CGF.CreateTempAlloca(CGF.Builder.getInt1Ty(), "finally.for-eh"); in enter()
1481 // Enter a normal cleanup which will perform the @finally block. in enter()
1487 llvm::BasicBlock *catchBB = CGF.createBasicBlock("finally.catchall"); in enter()
1493 // Leave the finally catch-all. in exit()
1520 // Tell the cleanups in the finally block that we're do this for EH. in exit()
1523 // Thread a jump through the finally cleanup. in exit()
1529 // Finally, leave the @finally cleanup. in exit()
1739 // If CFG.IsOutlinedSEHHelper is true, then we are within a finally block. in Emit()
1822 // This is the simple case where we are the outermost finally. All we in VisitCallExpr()
1898 // Otherwise, for x64 and 32-bit finally functions, the parent FP is the in EmitCapturedLocals()
1909 // since finally funclets recover the parent FP for us. in EmitCapturedLocals()
2035 // All SEH finally functions take two parameters. Win64 filters take two in startOutlinedSEHHelper()
2095 const SEHFinallyStmt &Finally) { in GenerateSEHFinallyFunction() argument
2096 const Stmt *FinallyBlock = Finally.getBlock(); in GenerateSEHFinallyFunction()
2159 // Abnormal termination is just the first parameter to the outlined finally in EmitSEHAbnormalTermination()
2173 if (const SEHFinallyStmt *Finally = S.getFinallyHandler()) { in EnterSEHTryStmt() local
2174 // Outline the finally block. in EnterSEHTryStmt()
2176 HelperCGF.GenerateSEHFinallyFunction(*this, *Finally); in EnterSEHTryStmt()