mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-26 05:47:26 +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>
|
2019-03-01 Andreas Krebbel <krebbel@linux.ibm.com>
|
||||||
|
|
||||||
This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
|
This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
|
||||||
|
40
ld/ldexp.c
40
ld/ldexp.c
@ -864,34 +864,30 @@ fold_name (etree_type *tree)
|
|||||||
|
|
||||||
case LENGTH:
|
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);
|
mem = lang_memory_region_lookup (tree->name.name, FALSE);
|
||||||
if (mem != NULL)
|
if (mem != NULL)
|
||||||
new_number (mem->length);
|
new_number (mem->length);
|
||||||
else
|
else
|
||||||
einfo (_("%F%P:%pS: undefined MEMORY region `%s'"
|
einfo (_("%F%P:%pS: undefined MEMORY region `%s'"
|
||||||
" referenced in expression\n"),
|
" referenced in expression\n"),
|
||||||
tree, tree->name.name);
|
tree, tree->name.name);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ORIGIN:
|
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);
|
mem = lang_memory_region_lookup (tree->name.name, FALSE);
|
||||||
if (mem != NULL)
|
if (mem != NULL)
|
||||||
new_rel_from_abs (mem->origin);
|
new_rel_from_abs (mem->origin);
|
||||||
else
|
else
|
||||||
einfo (_("%F%P:%pS: undefined MEMORY region `%s'"
|
einfo (_("%F%P:%pS: undefined MEMORY region `%s'"
|
||||||
" referenced in expression\n"),
|
" referenced in expression\n"),
|
||||||
tree, tree->name.name);
|
tree, tree->name.name);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CONSTANT:
|
case CONSTANT:
|
||||||
|
Reference in New Issue
Block a user