summaryrefslogtreecommitdiff
path: root/ld/ldexp.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2010-08-12 13:36:49 +0000
committerAlan Modra <amodra@bigpond.net.au>2010-08-12 13:36:49 +0000
commit38ce08ed8d84be185145f27b22e661edcdab17fa (patch)
treea8d1bf366f42bbc441fe1b9b0b6d96e0ed1a5e40 /ld/ldexp.c
parent85a726fbb59bd8ca9f4578624ddc42e72af0d068 (diff)
downloadbinutils-redhat-38ce08ed8d84be185145f27b22e661edcdab17fa.tar.gz
* ldexp.c (new_rel): Remove "str". Update all call sites.
(exp_fold_tree_1): When assigning to dot, calculate nextdot using expld.result.section rather than expld.section.
Diffstat (limited to 'ld/ldexp.c')
-rw-r--r--ld/ldexp.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/ld/ldexp.c b/ld/ldexp.c
index aae94c65c2..050227d25b 100644
--- a/ld/ldexp.c
+++ b/ld/ldexp.c
@@ -1,6 +1,6 @@
/* This module handles expression trees.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
@@ -190,11 +190,11 @@ exp_relop (asection *section, bfd_vma value)
}
static void
-new_rel (bfd_vma value, char *str, asection *section)
+new_rel (bfd_vma value, asection *section)
{
expld.result.valid_p = TRUE;
expld.result.value = value;
- expld.result.str = str;
+ expld.result.str = NULL;
expld.result.section = section;
}
@@ -561,7 +561,7 @@ fold_name (etree_type *tree)
}
else
new_rel (h->u.def.value + h->u.def.section->output_offset,
- NULL, output_section);
+ output_section);
}
}
else if (expld.phase == lang_final_phase_enum
@@ -591,7 +591,7 @@ fold_name (etree_type *tree)
tree->name.name);
}
else if (os->processed_vma)
- new_rel (0, NULL, os->bfd_section);
+ new_rel (0, os->bfd_section);
}
break;
@@ -704,7 +704,8 @@ exp_fold_tree_1 (etree_type *tree)
switch (tree->type.node_class)
{
case etree_value:
- new_rel (tree->value.value, tree->value.str, expld.section);
+ new_rel (tree->value.value, expld.section);
+ expld.result.str = tree->value.str;
break;
case etree_rel:
@@ -712,7 +713,7 @@ exp_fold_tree_1 (etree_type *tree)
{
asection *output_section = tree->rel.section->output_section;
new_rel (tree->rel.value + tree->rel.section->output_offset,
- NULL, output_section);
+ output_section);
}
else
memset (&expld.result, 0, sizeof (expld.result));
@@ -766,7 +767,7 @@ exp_fold_tree_1 (etree_type *tree)
{
bfd_vma nextdot;
- nextdot = expld.result.value + expld.section->vma;
+ nextdot = expld.result.value + expld.result.section->vma;
if (nextdot < expld.dot
&& expld.section != bfd_abs_section_ptr)
einfo (_("%F%S cannot move location counter backwards"