PR24008, Wrong value of ternary expression in map file
authorAlan Modra <amodra@gmail.com>
Sun, 27 Jan 2019 23:29:29 +0000 (09:59 +1030)
committerAlan Modra <amodra@gmail.com>
Sun, 27 Jan 2019 23:29:29 +0000 (09:59 +1030)
commit6a84624340dd19ccd927d91d79e0ece135c6d846
treeeafcd04a1374596f537457ef8f2f7d61cf50db9d
parente044973b0cadb4c36c2a2c11e908d758b8cd75f9
PR24008, Wrong value of ternary expression in map file

PR 24008
* ldexp.h (lang_phase_type): Add lang_fixed_phase_enum.
* ldexp.c (fold_name): Move expld.assign_name check later to
avoid an extra lookup.
(exp_fold_tree_1): When lang_fixed_phase_enum, don't change symbol
values, and don't clear expld.assign_name.
* ldlang.c (lang_map): Set expld.phase to lang_fixed_phase_enum.
(print_assignment): Resolve entire assignment expression.
Don't access symbol u.def unless symbol is defined.
ld/ChangeLog
ld/ldexp.c
ld/ldexp.h
ld/ldlang.c