aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2023-04-10 10:15:59 +0200
committerMarc Poulhiès <poulhies@adacore.com>2023-05-29 10:23:22 +0200
commitfb828af5933219d95f0f6a98567c09813de2dde1 (patch)
tree9413ac64e30bc7dc9b0d86355045234eb849ad71 /gcc
parent61c54dd719630570161551bb52b6e5412fc5f85e (diff)
downloadgcc-fb828af5933219d95f0f6a98567c09813de2dde1.zip
gcc-fb828af5933219d95f0f6a98567c09813de2dde1.tar.gz
gcc-fb828af5933219d95f0f6a98567c09813de2dde1.tar.bz2
ada: Fix spurious error on imported generic function with precondition
It occurs during the instantiation because the compiler forgets the context of the generic declaration. gcc/ada/ * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec in both cases to copy the spec of the subprogram.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/freeze.adb8
1 files changed, 1 insertions, 7 deletions
diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index 5d3413c..8ebf10b 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -6063,12 +6063,6 @@ package body Freeze is
then
-- Here we do the wrap
- -- Note on calls to Copy_Separate_Tree. The trees we are copying
- -- here are fully analyzed, but we definitely want fully syntactic
- -- unanalyzed trees in the body we construct, so that the analysis
- -- generates the right visibility, and that is exactly what the
- -- calls to Copy_Separate_Tree give us.
-
Prag := Copy_Import_Pragma;
-- Fix up spec so it is no longer imported and has convention Ada
@@ -6127,7 +6121,7 @@ package body Freeze is
Specification => Copy_Subprogram_Spec (Spec),
Declarations => New_List (
Make_Subprogram_Declaration (Loc,
- Specification => Copy_Separate_Tree (Spec)),
+ Specification => Copy_Subprogram_Spec (Spec)),
Prag),
Handled_Statement_Sequence =>
Make_Handled_Sequence_Of_Statements (Loc,