aboutsummaryrefslogtreecommitdiff
path: root/ld/ldexp.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2023-08-02 09:23:36 +0100
committerNick Clifton <nickc@redhat.com>2023-08-02 09:23:36 +0100
commit675b9d612cc59446e84e2c6d89b45500cb603a8d (patch)
treead4ae6b4b1f1f81aceb945f15c5c12ea2b379689 /ld/ldexp.c
parent69c37f53e20dc3e0b3c179b511ff786db6ae114e (diff)
downloadbinutils-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.c44
1 files changed, 10 insertions, 34 deletions
diff --git a/ld/ldexp.c b/ld/ldexp.c
index c538795..170e1ed 100644
--- a/ld/ldexp.c
+++ b/ld/ldexp.c
@@ -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)
{