libFirm
Compound

Modules

 Class
 If the type opcode is set to type_class the type represents class types.
 
 Struct
 A struct type represents aggregate types that consist of a list of fields.
 
 Union
 The union type represents union types.
 

Functions

identget_compound_ident (const ir_type *tp)
 Returns the identifier of a compound type. More...
 
const char * get_compound_name (const ir_type *tp)
 Returns compound identifier as c-string. More...
 
size_t get_compound_n_members (const ir_type *tp)
 Returns the number of elements in a Firm compound type. More...
 
ir_entityget_compound_member (const ir_type *tp, size_t pos)
 Returns the member of a Firm compound type at position pos. More...
 
size_t get_compound_member_index (ir_type const *tp, ir_entity const *member)
 Returns index of member in tp, -1 if not contained. More...
 
void remove_compound_member (ir_type *compound, ir_entity *entity)
 Remove a member from a compound type. More...
 
void default_layout_compound_type (ir_type *tp)
 layout members of a struct/union or class type in a default way. More...
 
int is_compound_type (const ir_type *tp)
 Checks whether a type is a compound type. More...
 

Detailed Description

Function Documentation

void default_layout_compound_type ( ir_type tp)

layout members of a struct/union or class type in a default way.

ident* get_compound_ident ( const ir_type tp)

Returns the identifier of a compound type.

ir_entity* get_compound_member ( const ir_type tp,
size_t  pos 
)

Returns the member of a Firm compound type at position pos.

Parameters
tpThe type (must be struct, union or class).
posThe number of the member.
Returns
The member entity at position pos.
size_t get_compound_member_index ( ir_type const *  tp,
ir_entity const *  member 
)

Returns index of member in tp, -1 if not contained.

size_t get_compound_n_members ( const ir_type tp)

Returns the number of elements in a Firm compound type.

This is just a comfortability function, because structs and classes can often be treated be the same code, but they have different access functions to their members.

Parameters
tpThe type (must be struct, union or class).
Returns
Number of members in the compound type.
const char* get_compound_name ( const ir_type tp)

Returns compound identifier as c-string.

int is_compound_type ( const ir_type tp)

Checks whether a type is a compound type.

Parameters
tp- any type
Returns
true if the type is class, structure, union or segment type.
void remove_compound_member ( ir_type compound,
ir_entity entity 
)

Remove a member from a compound type.