diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2023-04-10 10:15:59 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-05-29 10:23:22 +0200 |
commit | fb828af5933219d95f0f6a98567c09813de2dde1 (patch) | |
tree | 9413ac64e30bc7dc9b0d86355045234eb849ad71 /gcc | |
parent | 61c54dd719630570161551bb52b6e5412fc5f85e (diff) | |
download | gcc-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.adb | 8 |
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, |