aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ada/sem_elab.adb7
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.