diff options
Diffstat (limited to 'ld/ldlang.h')
-rw-r--r-- | ld/ldlang.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/ld/ldlang.h b/ld/ldlang.h index a833672..86ef342 100644 --- a/ld/ldlang.h +++ b/ld/ldlang.h @@ -307,10 +307,14 @@ typedef struct lang_input_statement_struct struct flag_info *section_flag_list; /* Point to the next file - whatever it is, wanders up and down - archives */ + archive elements. If this input_statement is for an archive, it + won't be on file_chain (which uses this list pointer), but if + any elements have been extracted from the archive, it will point + to the input_statement for the last such element. */ union lang_statement_union *next; - /* Point to the next file, but skips archive contents. */ + /* Point to the next file, but skips archive contents. Used by + input_file_chain. */ union lang_statement_union *next_real_file; const char *target; @@ -582,9 +586,9 @@ extern asection *section_for_dot #define LANG_FOR_EACH_INPUT_STATEMENT(statement) \ lang_input_statement_type *statement; \ - for (statement = (lang_input_statement_type *) file_chain.head; \ - statement != (lang_input_statement_type *) NULL; \ - statement = (lang_input_statement_type *) statement->next) \ + for (statement = &file_chain.head->input_statement; \ + statement != NULL; \ + statement = &statement->next->input_statement) #define lang_output_section_find(NAME) \ lang_output_section_statement_lookup (NAME, 0, FALSE) |