Lines Matching full:catch
287 // Check if the catch value has the ObjC prefix.
354 /// presence of a catch-all.
356 // Possibly we should use @llvm.eh.catch.all.value here.
531 // If this isn't a catch-all filter, we need to check whether we got
592 llvm::BasicBlock *Handler = createBasicBlock("catch");
595 // impossible to correctly implement catch-by-reference
610 // No exception decl indicates '...', a catch-all.
629 case EHScope::Catch: {
630 // Apply a special case to a single catch-all.
638 dispatchBlock = createBasicBlock("catch.dispatch");
668 case EHScope::Catch:
737 // landing pad has a catch-all.
740 /// catch-alls.
760 case EHScope::Catch:
812 assert(!hasCatchAll && "EH filter reached after catch-all");
825 // Terminate scopes are basically catch-alls.
830 case EHScope::Catch:
838 // If this is a catch-all, register that and abort.
853 // If we have a catch-all, add null to the landingpad.
905 /// - Catch-alls tell us nothing, so we have to conservatively
944 /// A "special initializer" callback for initializing a catch
945 /// parameter during catch initialization.
1021 // If the catch type is a pointer type, __cxa_begin_catch returns
1069 assert(isa<RecordType>(CatchType) && "unexpected catch type!");
1118 /// Begins a catch statement by initializing the catch variable and
1128 // 1. Construct catch variable.
1141 // - EmitCXXTryStmt emits the code for the catch body
1157 /// Emit the structure of the dispatch block for the given catch scope.
1164 // If there's only a single catch-all, getEHDispatchBlock returned
1165 // that catch-all as the dispatch block.
1182 // Test against each of the exception types we claim to catch.
1188 assert(typeValue && "fell into catch-all case!");
1201 // If the next handler is a catch-all, we're at the end, and the
1209 nextBlock = CGF.createBasicBlock("catch.fallthrough");
1213 // Figure out the catch type's index in the LSDA's type table.
1222 // If the next handler is a catch-all, we're completely done.
1244 // If the catch was not required, bail out now.
1250 // Emit the structure of the EH dispatch for this catch.
1268 // Determine if we need an implicit rethrow for all these catch handlers;
1277 // catch block will have exactly one predecessor, which will be a
1278 // particular block in the catch dispatch. However, in the case of
1279 // a catch-all, one of the dispatch blocks will branch to two
1286 // Catch the exception if this isn't a catch-all.
1289 // Enter a cleanup scope, including the catch variable and the
1290 // end-catch.
1293 // Initialize the catch variable and set up the cleanups.
1296 // Perform the body of the catch.
1306 // constructor function-try-block's catch handler (p14), so this
1314 // Fall out through the catch cleanups.
1341 CGF.EmitRuntimeCallOrInvoke(EndCatchFn); // catch-all, so might throw
1360 // Enter a cleanup to call the end-catch function if one was provided.
1400 // Leave the end-catch cleanup. As an optimization, pretend that
1418 /// language/ABI-specific behavior in the catch-all sections.
1425 "begin/end catch functions not paired");
1447 // are no catch handlers higher on the stack. Therefore, we
1449 // cleanup (to catch attempts to break out of the block via normal
1450 // control flow) and an EH catch-all (semantically "outside" any try
1453 // which conditionally leaves the catch-all.
1469 // Enter a catch-all scope.
1476 // Leave the finally catch-all.
1482 // If there are any references to the catch-all block, emit it.
1491 // If there's a begin-catch function, call it.