Allocator

The diagrams below draw one box per node kind, with one port per field. The edge colours say how a link is held; they are listed in full on the Fields page.

digraph { rankdir="LR" nodesep=0.1 node [shape=point width=0.06 color="#888a85"] edge [fontname="monospace" fontsize=10 minlen=3] l0a -> l0b [label="owned" color="#000000"] l1a -> l1b [label="ref" color="#3465a4" style=dashed] l2a -> l2b [label="maybe ref" color="#3465a4" style=dotted] l3a -> l3b [label="of ref" color="#3465a4" style=dashed] l4a -> l4b [label="of maybe ref" color="#3465a4" style=dotted] l5a -> l5b [label="forward ref" color="#f57900" style=dashed] l6a -> l6b [label="maybe forward ref" color="#f57900" style=dotted] l7a -> l7b [label="chain" color="#4e9a06"] l8a -> l8b [label="chain next" color="#4e9a06" style=bold] }

Iir_Kind_Allocator_By_Expression

LRM08 9.3.7 Allocators

allocator ::=
    NEW subtype_indication
  | NEW qualified_expression

Format: Short

Accessor

Field

Type

Access

Description

Type

Field1

Iir

ref

Expression

Field5

Iir

owned

Contains the expression for a by expression allocator.

Allocator_Designated_Type

Field2

Iir

ref

To ease analysis: set to the designated type (either the type of the expression or the subtype)

Expr_Staticness

State1

Iir_Staticness

owned

Expression staticness, defined by rules of LRM 7.4

Is_Ref

Flag12

Boolean

owned

Set to True if Maybe_Ref fields are references. This cannot be shared with Has_Identifier_List as: Is_Ref is set to True on all items but the first, while Has_Identifier_List is set to True on all items but the last. Furthermore Is_Ref appears in nodes where Has_Identifier_List is not present.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Allocator_By_Expression" [style=filled fillcolor="#eeeeec" label="{Allocator_By_Expression|{<Type> Type|<Expression> Expression|<Allocator_Designated_Type> Allocator_Designated_Type|<Expr_Staticness> Expr_Staticness|<Is_Ref> Is_Ref}}"] "Allocator_By_Expression__Type" [shape=box label="Iir"] "Allocator_By_Expression":Type -> "Allocator_By_Expression__Type" [color="#3465a4" style=dashed] "Allocator_By_Expression__Expression" [shape=box label="Iir"] "Allocator_By_Expression":Expression -> "Allocator_By_Expression__Expression" [color="#000000"] "Allocator_By_Expression__Allocator_Designated_Type" [shape=box label="Iir"] "Allocator_By_Expression":Allocator_Designated_Type -> "Allocator_By_Expression__Allocator_Designated_Type" [color="#3465a4" style=dashed] }

Iir_Kind_Allocator_By_Subtype

LRM08 9.3.7 Allocators

allocator ::=
    NEW subtype_indication
  | NEW qualified_expression

Format: Short

Accessor

Field

Type

Access

Description

Type

Field1

Iir

ref

Subtype_Indication

Field5

Iir

maybe ref

Contains the subtype indication for a by subtype allocator.

Allocator_Subtype

Field3

Iir

ref

Same as subtype indication but owned.

Allocator_Designated_Type

Field2

Iir

ref

To ease analysis: set to the designated type (either the type of the expression or the subtype)

Expr_Staticness

State1

Iir_Staticness

owned

Expression staticness, defined by rules of LRM 7.4

Is_Ref

Flag12

Boolean

owned

Set to True if Maybe_Ref fields are references. This cannot be shared with Has_Identifier_List as: Is_Ref is set to True on all items but the first, while Has_Identifier_List is set to True on all items but the last. Furthermore Is_Ref appears in nodes where Has_Identifier_List is not present.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Allocator_By_Subtype" [style=filled fillcolor="#eeeeec" label="{Allocator_By_Subtype|{<Type> Type|<Subtype_Indication> Subtype_Indication|<Allocator_Subtype> Allocator_Subtype|<Allocator_Designated_Type> Allocator_Designated_Type|<Expr_Staticness> Expr_Staticness|<Is_Ref> Is_Ref}}"] "Allocator_By_Subtype__Type" [shape=box label="Iir"] "Allocator_By_Subtype":Type -> "Allocator_By_Subtype__Type" [color="#3465a4" style=dashed] "Allocator_By_Subtype__Subtype_Indication" [shape=box label="Iir"] "Allocator_By_Subtype":Subtype_Indication -> "Allocator_By_Subtype__Subtype_Indication" [color="#3465a4" style=dotted] "Allocator_By_Subtype__Allocator_Subtype" [shape=box label="Iir"] "Allocator_By_Subtype":Allocator_Subtype -> "Allocator_By_Subtype__Allocator_Subtype" [color="#3465a4" style=dashed] "Allocator_By_Subtype__Allocator_Designated_Type" [shape=box label="Iir"] "Allocator_By_Subtype":Allocator_Designated_Type -> "Allocator_By_Subtype__Allocator_Designated_Type" [color="#3465a4" style=dashed] }