Unmutable_Named_Bit_Field

class Unmutable_Named_Bit_Field (concrete, logical)
Direct parents:
Ancestor classes and implemented interfaces:

Bit_Field, Declarative_Node, Field, General_Object_Interface, Logical_IR_Root, Member, Named_Bit_Field, Named_Entity, Object, Symbol, Typed_Object

Field

Kind

Type

Description

Size_In_Bits (from Bit_Field)

attribute

builtin Natural

The size of the bitfield component in bits.

Bit_Position (from Bit_Field)

attribute

builtin Natural

The position in the current storage unit, i.e., the storage unit at Field.Offset.

Offset (from Field)

attribute

builtin Natural

Starting position of this field inside the parent composite. Equal to the value of offsetof(Parent, Field). The Offset does not include the Bit_Position for bit-fields.

Note: multiple fields can share the same offset in these circumstances:

  • In a union, all fields will have offset 0.

  • Neighboring bit-fields will have the same offset if they are stored together.

  • C++20 [[no_unique_address]]

Offset_In_Bits (from Field)

attribute

builtin UInt64

Offset to the field in bits. This is equal to offsetof(Parent, Field) * CHAR_BIT. The Offset_In_Bits does not include the Bit_Position for bit-fields.

Its_Type (from Typed_Object)

semantic

class Type

the normalized, ‘underlying’ type

Object_Flags (from Typed_Object)

attribute

bitfield Object_Flags_Type

bits like “address taken” and “is pointer”

Parent (from Logical_IR_Root)

semantic

class Logical_IR_Root

Physical (from Logical_IR_Root)

semantic to physical

class Physical_IR_Root

Visibility (from Member)

attribute

enum Visibility_Type

Name (from Named_Entity)

attribute

builtin String