CFG_Call_Block¶
- class CFG_Call_Block (concrete, logical)¶
calls are represented in their own blocks the block has a final instruction of type Call_Instruction
- Direct parents:
inherits CFG_Standard_Block
- Ancestor classes and implemented interfaces:
CFG_Block, CFG_Standard_Block, Execution_Node, Logical_IR_Root
Field
Kind
Type
Description
Next
semantic
class CFG_Block
The standard successor if call returns without exception. Can be
NoNodefor a[[noreturn]]function.Exceptional_Next
semantic
class CFG_Block
The successor (typically a catch block or destructor cleanup) if the call throws an exception. Will be
NoNodefor anoexceptfunction. If anoexceptfunction ends up throwing an exception,std::terminate()will be called implicitly. AlsoNoNodefor calls tonoexcept(false)destructors in “stack unwinding” code paths. Such “double exceptions” also callstd::terminate().Code (from CFG_Standard_Block)
syntactic
list of class Instruction
Helpers (from CFG_Standard_Block)
syntactic
list of class Helper_Variable
Start_Role (from CFG_Standard_Block)
attribute
enum Cfg_Block_Start_Role
Provides an explanation why a new block was started. The Start_Physical edge provides details specific to the role. More details are documented on the individual role enumerators.
Start_Physical (from CFG_Standard_Block)
semantic to physical
class Physical_IR_Root
Physical edge related to the block start; see Start_Role for the interpretation of this edge.
Parent (from Logical_IR_Root)
semantic
class Logical_IR_Root
Physical (from Logical_IR_Root)
semantic to physical
class Physical_IR_Root