[Ada] Force evaluation of operator calls in renamings

2020-06-16  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* exp_util.adb (Evaluate_Name): Force evaluation of operators.
This commit is contained in:
Piotr Trojanek 2020-04-05 23:37:18 +02:00 committed by Pierre-Marie de Rodat
parent 81c356975f
commit df7507a637
1 changed files with 9 additions and 5 deletions

View File

@ -4953,9 +4953,11 @@ package body Exp_Util is
when N_Explicit_Dereference =>
Force_Evaluation (Prefix (Nam));
-- For a function call, we evaluate the call
-- For a function call, we evaluate the call; same for an operator
when N_Function_Call =>
when N_Function_Call
| N_Op
=>
Force_Evaluation (Nam);
-- For a qualified expression, we evaluate the underlying object
@ -4989,9 +4991,11 @@ package body Exp_Util is
when N_Type_Conversion =>
Evaluate_Name (Expression (Nam));
-- The remaining cases are direct name, operator symbol and character
-- literal. In all these cases, we do nothing, since we want to
-- reevaluate each time the renamed object is used.
-- The remaining cases are direct name and character literal. In all
-- these cases, we do nothing, since we want to reevaluate each time
-- the renamed object is used. ??? There are more remaining cases, at
-- least in the GNATprove_Mode, where this routine is called in more
-- contexts than in GNAT.
when others =>
null;