From: Piotr Trojanek Date: Wed, 1 Feb 2023 19:41:49 +0000 (+0100) Subject: ada: Tune detection of expression functions within a declare expression X-Git-Tag: basepoints/gcc-15~8866 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4f591201821b4e236f79486fa3ae881a8b2d5212;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index b13af26b561f..958b26ebb0d2 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 a85c988fe465..c8bb99b67165 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;