From: Eric Botcazou <[email protected]>
This happens for example with:
package Q3 is
type Types is (One, Two);
end Q3;
with Q3;
package P3 is
Kind : Q3.Types := Q3.Types.One;
end P3;
and prevents the error from being given.
gcc/ada/ChangeLog:
PR ada/112979
* sem_ch8.adb (Find_Selected_Component): Try to recognize the
object operation notation only if the selector is a subprogram.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_ch8.adb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb
index 2007db368ed..449bfa89735 100644
--- a/gcc/ada/sem_ch8.adb
+++ b/gcc/ada/sem_ch8.adb
@@ -8535,7 +8535,7 @@ package body Sem_Ch8 is
Current_Entity (Selector_Name (N));
begin
if Present (F)
- and then Is_Overloadable (F)
+ and then Is_Subprogram (F)
and then Present (First_Entity (F))
and then not Is_Tagged_Type (Etype (First_Entity (F)))
then
--
2.43.0