[Ada] Fix oversight for case expression in Eval_Integer_Literal

The intent of the entry test is to treat conditional expressions, that is
to say if-expression and case-expression, alike and to require that a second
condition be true for them.  But an N_Case_Expression_Alternative is not an
N_Subexpr so this second condition was short-circuited for this node.

gcc/ada/

	* sem_eval.adb (Eval_Integer_Literal): Fix oversight in entry test.
This commit is contained in:
Eric Botcazou 2022-01-22 10:56:05 +01:00 committed by Pierre-Marie de Rodat
parent 53f2aaf0b3
commit 6798cad793

View file

@ -2797,7 +2797,7 @@ package body Sem_Eval is
-- Check_Non_Static_Context on an expanded literal may lead to spurious
-- and misleading warnings.
if (PK not in N_Subexpr
if (PK not in N_Case_Expression_Alternative | N_Subexpr
or else (PK in N_Case_Expression_Alternative | N_If_Expression
and then
Comes_From_Source (N)))