diff options
author | Nick Bowler <nbowler@draconx.ca> | 2019-03-06 15:20:29 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2019-03-06 15:20:29 +0000 |
commit | 912ebfa0d748b4a762dbc4311364c38692c7f626 (patch) | |
tree | d0fe417e8140a11e1c6fa67390a9829e36a3b2f2 /ld | |
parent | 67a3048c0fe804ab1e36d4074e7fd2dadeb8bc0b (diff) | |
download | gdb-912ebfa0d748b4a762dbc4311364c38692c7f626.zip gdb-912ebfa0d748b4a762dbc4311364c38692c7f626.tar.gz gdb-912ebfa0d748b4a762dbc4311364c38692c7f626.tar.bz2 |
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.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/ldexp.c | 44 |
2 files changed, 26 insertions, 24 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 1877a1c..c2cbe87 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -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. @@ -864,34 +864,30 @@ fold_name (etree_type *tree) case LENGTH: { - if (expld.phase != lang_first_phase_enum) - { - 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); - } + 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); } break; case ORIGIN: - if (expld.phase != lang_first_phase_enum) - { - 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); - } + { + 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); + } break; case CONSTANT: |