[gcc r13-7879] ada: Fix spurious error on imported generic function with precondition
Eric Botcazou
ebotcazou@gcc.gnu.org
Wed Sep 27 08:26:13 GMT 2023
https://gcc.gnu.org/g:c9af18f8677998e407b9f2e7fd977122969735aa
commit r13-7879-gc9af18f8677998e407b9f2e7fd977122969735aa
Author: Eric Botcazou <ebotcazou@adacore.com>
Date: Mon Apr 10 10:15:59 2023 +0200
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:
---
gcc/ada/freeze.adb | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index df3b5ec944e..c26c59e24ca 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -6066,12 +6066,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
@@ -6130,7 +6124,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,
More information about the Gcc-cvs
mailing list