From: Steve Baird Date: Thu, 5 Aug 2021 03:23:31 +0000 (-0700) Subject: [Ada] No ABE check needed for an expression function call. X-Git-Tag: upstream/12.2.0~4693 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8e35980ff82ad5a00de3237ad94c1fe942fb0ba4;p=platform%2Fupstream%2Fgcc.git [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. --- 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.