[gcc r11-5401] [Ada] Spurious error on formal package with overloaded subprograms
Pierre-Marie de Rodat
pmderodat@gcc.gnu.org
Thu Nov 26 08:41:04 GMT 2020
https://gcc.gnu.org/g:3268fb4dace884ad985965cbd64f3804b2f8fd74
commit r11-5401-g3268fb4dace884ad985965cbd64f3804b2f8fd74
Author: Ed Schonberg <schonberg@adacore.com>
Date: Tue Oct 20 09:42:57 2020 -0400
[Ada] Spurious error on formal package with overloaded subprograms
gcc/ada/
* sem_ch12.adb (Instantiate_Formal_Package): If previous matched
entity is overloadable, advance in the list of actuals of the
actual package, to prevent an erroneous match of two adjacent
overloadable homonyms with the same entity.
Diff:
---
gcc/ada/sem_ch12.adb | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb
index dfb0765e2b5..20a00d7be9e 100644
--- a/gcc/ada/sem_ch12.adb
+++ b/gcc/ada/sem_ch12.adb
@@ -10801,6 +10801,16 @@ package body Sem_Ch12 is
Next_Non_Pragma (Formal_Node);
Next (Actual_Of_Formal);
+ -- A formal subprogram may be overloaded, so advance in
+ -- the list of actuals to make sure we do not match two
+ -- successive formals to the same actual. This is only
+ -- relevant for overloadable entities, others have
+ -- distinct names.
+
+ if Is_Overloadable (Actual_Ent) then
+ Next_Entity (Actual_Ent);
+ end if;
+
else
-- No further formals to match, but the generic part may
-- contain inherited operation that are not hidden in the
More information about the Gcc-cvs
mailing list