Lines Matching +full:block +full:- +full:fixup
1 //===-- EHScopeStack.h - Stack for cleanup IR generation --------*- C++ -*-===//
8 //===----------------------------------------------------------------------===//
14 //===----------------------------------------------------------------------===//
31 /// A branch fixup. These are required when emitting a goto to a
33 /// emitted as a branch to the basic block for the label, and (if it
34 /// occurs in a scope with non-trivial cleanups) a fixup is added to
38 /// The block containing the terminator which needs to be modified
39 /// into a switch if this fixup is resolved into the current scope.
45 /// This can be set to null to indicate that this fixup was
52 /// The initial branch of the fixup.
116 static stable_iterator invalid() { return stable_iterator(-1); }
117 stable_iterator() : Size(-1) {}
141 /// POD-like: cleanups will not be destructed, and they will be
171 /// isForEH - true if the current emission is for an EH cleanup.
179 /// isEHCleanupKind - true if the cleanup was pushed as an EH
188 /// immediately-enclosing context of the cleanup scope. For
225 /// The start of the scope-stack buffer, i.e. the allocated pointer
242 /// The current set of branch fixups. A branch fixup is a jump to
243 /// an as-yet unemitted label, i.e. a label for which we don't yet
254 /// struct A { ~A(); }; // trivial ctor, non-trivial dtor
272 /// Push a lazily-created cleanup on the stack.
281 /// Push a lazily-created cleanup on the stack. Tuple version.
293 /// Push a cleanup with non-constant storage requirements on the
344 /// Determines whether the exception-scopes stack is empty.
366 /// An unstable reference to a scope-stack depth. Invalidated by
380 return stable_iterator(EndOfBuffer - StartOfData);
395 /// Add a branch fixup to the current cleanup scope.
397 assert(hasNormalCleanups() && "adding fixup in scope without cleanups");
408 /// Pops lazily-removed fixups from the end of the list. This
413 /// Clears the branch-fixups list. This should only be called by