aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2023-02-01 20:41:49 +0100
committerMarc Poulhiès <poulhies@adacore.com>2023-05-26 09:29:17 +0200
commit4f591201821b4e236f79486fa3ae881a8b2d5212 (patch)
treef8b7f9f68ac3552b34b3afa29232129d780d13b3 /gcc
parentdeba689502bb274e94f5a37a96d3fe582041e3b1 (diff)
downloadgcc-4f591201821b4e236f79486fa3ae881a8b2d5212.zip
gcc-4f591201821b4e236f79486fa3ae881a8b2d5212.tar.gz
gcc-4f591201821b4e236f79486fa3ae881a8b2d5212.tar.bz2
ada: Tune detection of expression functions within a declare expression
Code cleanup; semantics is unaffected. gcc/ada/ * sem_ch4.adb (Check_Action_OK): Replace low-level test with a high-level routine. * sem_ch13.adb (Is_Predicate_Static): Likewise.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/sem_ch13.adb2
-rw-r--r--gcc/ada/sem_ch4.adb4
2 files changed, 3 insertions, 3 deletions
diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb
index b13af26..958b26e 100644
--- a/gcc/ada/sem_ch13.adb
+++ b/gcc/ada/sem_ch13.adb
@@ -14261,7 +14261,7 @@ package body Sem_Ch13 is
-- transformed into just "(S /= 0)", which would appear to be
-- a predicate-static expression (and therefore legal).
- if Original_Node (Expr) /= Expr then
+ if Is_Rewrite_Substitution (Expr) then
-- Emit warnings for predicates that are always True or always False
-- and were not originally expressed as Boolean literals.
diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb
index a85c988..c8bb99b 100644
--- a/gcc/ada/sem_ch4.adb
+++ b/gcc/ada/sem_ch4.adb
@@ -2371,11 +2371,11 @@ package body Sem_Ch4 is
if not Comes_From_Source (N) or else not Comes_From_Source (A) then
-- If, for example, an (illegal) expression function is
- -- transformed into a"vanilla" function then we don't want to
+ -- transformed into a "vanilla" function then we don't want to
-- allow it just because Comes_From_Source is now False. So look
-- at the Original_Node.
- if A /= Original_Node (A) then
+ if Is_Rewrite_Substitution (A) then
Check_Action_OK (Original_Node (A));
end if;