[COMMITTED] ada: Tune detection of expression functions within a declare expression
Checks
Commit Message
From: Piotr Trojanek <trojanek@adacore.com>
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.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_ch13.adb | 2 +-
gcc/ada/sem_ch4.adb | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
@@ -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.
@@ -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;