aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2022-01-22 10:56:05 +0100
committerPierre-Marie de Rodat <derodat@adacore.com>2022-05-10 08:19:23 +0000
commit6798cad793d9581936f2de76c85a22a5449d7358 (patch)
treebf61448089bccbb293494a73ef15292d37044912 /gcc
parent53f2aaf0b3c322e65d014ad2203a706bc8b26b8f (diff)
downloadgcc-6798cad793d9581936f2de76c85a22a5449d7358.zip
gcc-6798cad793d9581936f2de76c85a22a5449d7358.tar.gz
gcc-6798cad793d9581936f2de76c85a22a5449d7358.tar.bz2
[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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/sem_eval.adb2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ada/sem_eval.adb b/gcc/ada/sem_eval.adb
index 2881a14..af24de3 100644
--- a/gcc/ada/sem_eval.adb
+++ b/gcc/ada/sem_eval.adb
@@ -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)))