enum statement_enum
{
- lang_output_section_statement_enum,
- lang_assignment_statement_enum,
- lang_input_statement_enum,
lang_address_statement_enum,
- lang_wild_statement_enum,
- lang_input_section_enum,
- lang_object_symbols_statement_enum,
- lang_fill_statement_enum,
+ lang_assignment_statement_enum,
lang_data_statement_enum,
- lang_reloc_statement_enum,
- lang_target_statement_enum,
- lang_output_statement_enum,
- lang_padding_statement_enum,
+ lang_fill_statement_enum,
lang_group_statement_enum,
+ lang_input_section_enum,
+ lang_input_statement_enum,
lang_insert_statement_enum,
- lang_constructors_statement_enum
+ lang_output_section_statement_enum,
+ lang_output_statement_enum,
+ lang_padding_statement_enum,
+ lang_reloc_statement_enum,
+ lang_target_statement_enum,
+ lang_wild_statement_enum,
+ lang_constructors_statement_enum,
+ lang_object_symbols_statement_enum
};
typedef struct lang_statement_header_struct
unsigned int align_lma_with_input : 1;
} lang_output_section_statement_type;
-typedef struct
-{
- lang_statement_header_type header;
-} lang_common_statement_type;
-
-typedef struct
-{
- lang_statement_header_type header;
-} lang_object_symbols_statement_type;
-
typedef struct
{
lang_statement_header_type header;
struct flag_info *section_flag_list;
/* Next pointer for file_chain statement list. */
- union lang_statement_union *next;
+ struct lang_input_statement_struct *next;
/* Next pointer for input_file_chain statement list. */
- union lang_statement_union *next_real_file;
+ struct lang_input_statement_struct *next_real_file;
const char *target;
typedef union lang_statement_union
{
lang_statement_header_type header;
- lang_wild_statement_type wild_statement;
- lang_data_statement_type data_statement;
- lang_reloc_statement_type reloc_statement;
lang_address_statement_type address_statement;
- lang_output_section_statement_type output_section_statement;
lang_assignment_statement_type assignment_statement;
- lang_input_statement_type input_statement;
- lang_target_statement_type target_statement;
- lang_output_statement_type output_statement;
- lang_input_section_type input_section;
- lang_common_statement_type common_statement;
- lang_object_symbols_statement_type object_symbols_statement;
+ lang_data_statement_type data_statement;
lang_fill_statement_type fill_statement;
- lang_padding_statement_type padding_statement;
lang_group_statement_type group_statement;
+ lang_input_section_type input_section;
+ lang_input_statement_type input_statement;
lang_insert_statement_type insert_statement;
+ lang_output_section_statement_type output_section_statement;
+ lang_output_statement_type output_statement;
+ lang_padding_statement_type padding_statement;
+ lang_reloc_statement_type reloc_statement;
+ lang_target_statement_type target_statement;
+ lang_wild_statement_type wild_statement;
} lang_statement_union_type;
/* This structure holds information about a program header, from the
extern void lang_leave_output_section_statement
(fill_type *, const char *, lang_output_section_phdr_list *,
const char *);
-extern void lang_statement_append
- (lang_statement_list_type *, lang_statement_union_type *,
- lang_statement_union_type **);
extern void lang_for_each_input_file
(void (*dothis) (lang_input_statement_type *));
extern void lang_for_each_file
lang_input_statement_type *statement; \
for (statement = &file_chain.head->input_statement; \
statement != NULL; \
- statement = &statement->next->input_statement)
+ statement = statement->next)
#define lang_output_section_find(NAME) \
lang_output_section_statement_lookup (NAME, 0, FALSE)