From: Eric Botcazou Date: Mon, 10 Apr 2023 08:15:59 +0000 (+0200) Subject: ada: Fix spurious error on imported generic function with precondition X-Git-Tag: basepoints/gcc-15~8786 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb828af5933219d95f0f6a98567c09813de2dde1;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index 5d3413c1505c..8ebf10bd576b 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,