clang 10.0.0git

Public Attributes | List of all members
clang::CodeGen::BranchFixup Struct Reference

A branch fixup. More...

`#include "/work/www-prereleases/10.0.0/rc1/docsbuild/clang/lib/CodeGen/EHScopeStack.h"`

Collaboration diagram for clang::CodeGen::BranchFixup:
[legend]

## Public Attributes
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. More...
llvm::BasicBlock * | Destination
| The ultimate destination of the branch. More...
unsigned | DestinationIndex
| The destination index value. More...
llvm::BranchInst * | InitialBranch
| The initial branch of the fixup. More...

## Detailed 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.

Definition at line 36 of file EHScopeStack.h.

## Member Data Documentation

## ◆ Destination

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 ResolveAllBranchFixups(), and clang::CodeGen::CodeGenFunction::ResolveBranchFixups().

## ◆ DestinationIndex

unsigned clang::CodeGen::BranchFixup::DestinationIndex

The destination index value.

Definition at line 49 of file EHScopeStack.h.

Referenced by ResolveAllBranchFixups().

## ◆ InitialBranch

llvm::BranchInst* clang::CodeGen::BranchFixup::InitialBranch

The initial branch of the fixup.

Definition at line 52 of file EHScopeStack.h.

Referenced by ResolveAllBranchFixups().

## ◆ OptimisticBranchBlock

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 ResolveAllBranchFixups(), and clang::CodeGen::CodeGenFunction::ResolveBranchFixups().

The documentation for this struct was generated from the following file:

- lib/CodeGen/EHScopeStack.h