clang API Documentation
#include <EHScopeStack.h>
Public Attributes | |
llvm::BasicBlock * | OptimisticBranchBlock |
llvm::BasicBlock * | Destination |
unsigned | DestinationIndex |
The destination index value. | |
llvm::BranchInst * | InitialBranch |
The initial branch of the fixup. |
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.
Definition at line 36 of file EHScopeStack.h.
llvm::BasicBlock* clang::CodeGen::BranchFixup::Destination |
The ultimate destination of the branch.
This can be set to null to indicate that this fixup was successfully resolved.
Definition at line 46 of file EHScopeStack.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), ResolveAllBranchFixups(), and clang::CodeGen::CodeGenFunction::ResolveBranchFixups().
The destination index value.
Definition at line 49 of file EHScopeStack.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), ResolveAllBranchFixups(), and clang::CodeGen::CodeGenFunction::ResolveBranchFixups().
llvm::BranchInst* clang::CodeGen::BranchFixup::InitialBranch |
The initial branch of the fixup.
Definition at line 52 of file EHScopeStack.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), and ResolveAllBranchFixups().
llvm::BasicBlock* clang::CodeGen::BranchFixup::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.
Definition at line 40 of file EHScopeStack.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), ResolveAllBranchFixups(), and clang::CodeGen::CodeGenFunction::ResolveBranchFixups().