diff options
-rw-r--r-- | gcc/ada/sem_elab.adb | 7 |
1 files changed, 7 insertions, 0 deletions
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. |