struct BranchFixup
Declaration
struct BranchFixup { /* full declaration omitted */ };
Description
A branch fixup. These are required when emitting a goto to a label which hasn't been emitted yet. The goto is optimistically emitted as a branch to the basic block for the label, and (if it occurs in a scope with non-trivial cleanups) a fixup is added to the innermost cleanup. When a (normal) cleanup is popped, any unresolved fixups in that scope are threaded through the cleanup.
Declared at: clang/lib/CodeGen/EHScopeStack.h:36
Member Variables
- public llvm::BasicBlock* OptimisticBranchBlock
- The block containing the terminator which needs to be modified into a switch if this fixup is resolved into the current scope. If null, LatestBranch points directly to the destination.
- public llvm::BasicBlock* Destination
- This can be set to null to indicate that this fixup was successfully resolved.
- public unsigned int DestinationIndex
- The destination index value.
- public llvm::BranchInst* InitialBranch
- The initial branch of the fixup.