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.