mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 21:41:47 +08:00
Allow the use of the ORIGIN and LENGTH attributes in expressions inside MEMORY regions.
PR 24289 * ldexp.c (fold_name): Allow lookups of the LENGTH and ORIGIN attributes during the first phase.
This commit is contained in:

committed by
Nick Clifton

parent
67a3048c0f
commit
912ebfa0d7
@ -1,3 +1,9 @@
|
||||
2019-03-06 Nick Bowler <nbowler@draconx.ca>
|
||||
|
||||
PR 24289
|
||||
* ldexp.c (fold_name): Allow lookups of the LENGTH and ORIGIN
|
||||
attributes during the first phase.
|
||||
|
||||
2019-03-01 Andreas Krebbel <krebbel@linux.ibm.com>
|
||||
|
||||
This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
|
||||
|
40
ld/ldexp.c
40
ld/ldexp.c
@ -864,34 +864,30 @@ fold_name (etree_type *tree)
|
||||
|
||||
case LENGTH:
|
||||
{
|
||||
if (expld.phase != lang_first_phase_enum)
|
||||
{
|
||||
lang_memory_region_type *mem;
|
||||
lang_memory_region_type *mem;
|
||||
|
||||
mem = lang_memory_region_lookup (tree->name.name, FALSE);
|
||||
if (mem != NULL)
|
||||
new_number (mem->length);
|
||||
else
|
||||
einfo (_("%F%P:%pS: undefined MEMORY region `%s'"
|
||||
" referenced in expression\n"),
|
||||
tree, tree->name.name);
|
||||
}
|
||||
mem = lang_memory_region_lookup (tree->name.name, FALSE);
|
||||
if (mem != NULL)
|
||||
new_number (mem->length);
|
||||
else
|
||||
einfo (_("%F%P:%pS: undefined MEMORY region `%s'"
|
||||
" referenced in expression\n"),
|
||||
tree, tree->name.name);
|
||||
}
|
||||
break;
|
||||
|
||||
case ORIGIN:
|
||||
if (expld.phase != lang_first_phase_enum)
|
||||
{
|
||||
lang_memory_region_type *mem;
|
||||
{
|
||||
lang_memory_region_type *mem;
|
||||
|
||||
mem = lang_memory_region_lookup (tree->name.name, FALSE);
|
||||
if (mem != NULL)
|
||||
new_rel_from_abs (mem->origin);
|
||||
else
|
||||
einfo (_("%F%P:%pS: undefined MEMORY region `%s'"
|
||||
" referenced in expression\n"),
|
||||
tree, tree->name.name);
|
||||
}
|
||||
mem = lang_memory_region_lookup (tree->name.name, FALSE);
|
||||
if (mem != NULL)
|
||||
new_rel_from_abs (mem->origin);
|
||||
else
|
||||
einfo (_("%F%P:%pS: undefined MEMORY region `%s'"
|
||||
" referenced in expression\n"),
|
||||
tree, tree->name.name);
|
||||
}
|
||||
break;
|
||||
|
||||
case CONSTANT:
|
||||
|
Reference in New Issue
Block a user