https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126482

            Bug ID: 126482
           Summary: Weird error messages with Unrestricted_Access.
           Product: gcc
           Version: 16.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ada
          Assignee: unassigned at gcc dot gnu.org
          Reporter: p.p11 at orange dot fr
                CC: dkm at gcc dot gnu.org
  Target Milestone: ---

Created attachment 65167
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=65167&action=edit
Reproducer.

Actual behavior:
(Full source files in attached archive)
% gcc -c -gnatfl multiuser.adb
GNAT 16.1.0
...
     3. with Gnoga.Gui.Base;
     4. with Gnoga.Gui.Element;
     5. with Gnoga.Types;
     6.
     7. procedure Multiuser is
...
    11.    use Gnoga.Gui.Element;
...
    19.    procedure On_Destroy (Object : in out
Gnoga.Gui.Base.Base_Type'Class)
    20.    is
    21.    begin
    22.       Log ("Winwdow is destroyed, Connection_Data");
    23.    end On_Destroy;
    24.
    25.    procedure On_Connect
    26.      (Main_Window : in out Gnoga.Gui.Window.Window_Type'Class;
    27.       Connection  : access
    28.         Gnoga.Application.Multi_Connect.Connection_Holder_Type);
    29.
    30.    procedure On_Connect
    31.      (Main_Window : in out Gnoga.Gui.Window.Window_Type'Class;
    32.       Connection  : access
    33.         Gnoga.Application.Multi_Connect.Connection_Holder_Type)
    34.    is
    35.       App : App_Access := new App_Data;
    36.    begin
    37.
    38.       App.Main_Window.On_Destroy_Handler
(On_Destroy'Unrestricted_Access);
                                                  1         5
        >>> error: no candidate interpretations match the actuals:
        >>> error: missing argument for parameter "Object" in call to
"On_Destroy" declared at line 19
        >>> error: missing argument for parameter "Object" in call to
"On_Destroy" (inherited) at gnoga-gui-element.ads:51
        >>> error: context requires function call, found procedure name
        >>> error: expected type "Action_Event" defined at
gnoga-gui-base.ads:290
        >>> error: found type access to type derived from "Standard._Void_Type"
defined at line 38
        >>> error:   ==> in call to inherited operation "On_Destroy_Handler" at
gnoga-gui-window.ads:56

    39.
    40.    end On_Connect;

Although On_Destroy is visible from both multiuser.adb:19 and
gnoga-gui-element.ads:51 (inherited from gnoga-gui-base.adb:622), the error
messages are weird.

Expected behavior:
Indicating whether there is no multi-visibility case or else issue a meaningful
error message.

Reply via email to