From 8e35980ff82ad5a00de3237ad94c1fe942fb0ba4 Mon Sep 17 00:00:00 2001 From: Steve Baird Date: Wed, 4 Aug 2021 20:23:31 -0700 Subject: [Ada] No ABE check needed for an expression function call. gcc/ada/ * sem_elab.adb (Is_Safe_Call): Return True in the case of a (possibly rewritten) call to an expression function. --- gcc/ada/sem_elab.adb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gcc/ada/sem_elab.adb b/gcc/ada/sem_elab.adb index 7635ae1..122a837 100644 --- a/gcc/ada/sem_elab.adb +++ b/gcc/ada/sem_elab.adb @@ -13621,6 +13621,13 @@ package body Sem_Elab is then return True; + -- A call to an expression function that is not a completion cannot + -- cause an ABE because it has no prior declaration; this remains + -- true even if the FE transforms the callee into something else. + + elsif Nkind (Original_Node (Spec_Decl)) = N_Expression_Function then + return True; + -- Subprogram bodies which wrap attribute references used as actuals -- in instantiations are always ABE-safe. These bodies are artifacts -- of expansion. -- cgit v1.1