aboutsummaryrefslogtreecommitdiff
path: root/ld/ldlang.h
diff options
context:
space:
mode:
Diffstat (limited to 'ld/ldlang.h')
-rw-r--r--ld/ldlang.h14
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)