diff options
author | Nick Clifton <nickc@redhat.com> | 2023-08-02 09:23:36 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2023-08-02 09:23:36 +0100 |
commit | 675b9d612cc59446e84e2c6d89b45500cb603a8d (patch) | |
tree | ad4ae6b4b1f1f81aceb945f15c5c12ea2b379689 /ld/ldexp.c | |
parent | 69c37f53e20dc3e0b3c179b511ff786db6ae114e (diff) | |
download | binutils-binutils-2_41-release.zip binutils-binutils-2_41-release.tar.gz binutils-binutils-2_41-release.tar.bz2 |
2.41 Release sourcesbinutils-2_41-release
Diffstat (limited to 'ld/ldexp.c')
-rw-r--r-- | ld/ldexp.c | 44 |
1 files changed, 10 insertions, 34 deletions
@@ -94,7 +94,6 @@ exp_print_token (token_code_type code, int infix_p) { RSHIFTEQ, ">>=" }, { ANDEQ, "&=" }, { OREQ, "|=" }, - { XOREQ, "^=" }, { OROR, "||" }, { ANDAND, "&&" }, { EQ, "==" }, @@ -692,24 +691,6 @@ fold_trinary (etree_type *tree) : tree->trinary.rhs); } -static lang_output_section_statement_type * -output_section_find (const char *name) -{ - lang_output_section_statement_type *os = lang_output_section_find (name); - - if (os == NULL && strcmp (name, "NEXT_SECTION") == 0) - { - os = expld.last_os; - if (os != NULL) - while ((os = os->next) != NULL) - if (os->constraint >= 0 && os->bfd_section != NULL) - break; - if (os == NULL) - os = abs_output_section; - } - return os; -} - static void fold_name (etree_type *tree) { @@ -869,7 +850,7 @@ fold_name (etree_type *tree) { lang_output_section_statement_type *os; - os = output_section_find (tree->name.name); + os = lang_output_section_find (tree->name.name); if (os == NULL) { if (expld.phase == lang_final_phase_enum) @@ -1289,32 +1270,29 @@ exp_fold_tree_1 (etree_type *tree) } void -exp_fold_tree (etree_type *tree, lang_output_section_statement_type *os, - asection *current_section, bfd_vma *dotp) +exp_fold_tree (etree_type *tree, asection *current_section, bfd_vma *dotp) { expld.rel_from_abs = false; expld.dot = *dotp; expld.dotp = dotp; expld.section = current_section; - expld.last_os = os; exp_fold_tree_1 (tree); } void -exp_fold_tree_no_dot (etree_type *tree, lang_output_section_statement_type *os) +exp_fold_tree_no_dot (etree_type *tree) { expld.rel_from_abs = false; expld.dot = 0; expld.dotp = NULL; expld.section = bfd_abs_section_ptr; - expld.last_os = os; exp_fold_tree_1 (tree); } static void exp_value_fold (etree_type *tree) { - exp_fold_tree_no_dot (tree, NULL); + exp_fold_tree_no_dot (tree); if (expld.result.valid_p) { tree->type.node_code = INT; @@ -1569,12 +1547,11 @@ exp_print_tree (etree_type *tree) } bfd_vma -exp_get_vma (etree_type *tree, lang_output_section_statement_type *os, - bfd_vma def, char *name) +exp_get_vma (etree_type *tree, bfd_vma def, char *name) { if (tree != NULL) { - exp_fold_tree_no_dot (tree, os); + exp_fold_tree_no_dot (tree); if (expld.result.valid_p) return expld.result.value; else if (name != NULL && expld.phase != lang_mark_phase_enum) @@ -1590,10 +1567,9 @@ exp_get_vma (etree_type *tree, lang_output_section_statement_type *os, NULL or cannot be resolved, return -1. */ int -exp_get_power (etree_type *tree, lang_output_section_statement_type *os, - char *name) +exp_get_power (etree_type *tree, char *name) { - bfd_vma x = exp_get_vma (tree, os, -1, name); + bfd_vma x = exp_get_vma (tree, -1, name); bfd_vma p2; int n; @@ -1617,7 +1593,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name) if (tree == NULL) return def; - exp_fold_tree_no_dot (tree, NULL); + exp_fold_tree_no_dot (tree); if (!expld.result.valid_p) { if (name != NULL && expld.phase != lang_mark_phase_enum) @@ -1671,7 +1647,7 @@ exp_get_abs_int (etree_type *tree, int def, char *name) { if (tree != NULL) { - exp_fold_tree_no_dot (tree, NULL); + exp_fold_tree_no_dot (tree); if (expld.result.valid_p) { |