https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64869
Frédéric Bousquet <bousquetfrederic at outlook dot fr> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bousquetfrederic at outlook
dot fr
--- Comment #3 from Frédéric Bousquet <bousquetfrederic at outlook dot fr> ---
I have the same problem with types defined in generic packages, and I think
it's the same bug.
I use GNAT 14.2.1 20250110 (Red Hat 14.2.1-7).
I run into errors when I compile the below program:
-----------------------------------------
with Ada.Text_IO; use Ada.Text_IO;
procedure Test_Use_Type is
package Not_Generic is
type TA is private;
function F_TA return TA;
procedure P_TA (A : TA);
private
type TA is new Integer;
end Not_Generic;
package body Not_Generic is
function F_TA return TA is
begin
return 1;
end F_TA;
procedure P_TA (A : TA) is
begin
Put_Line (A'Image);
end P_TA;
end Not_Generic;
generic
TG : Integer;
package Generic_Package is
type TB is private;
function F_TB return TB;
procedure P_TB (B : TB);
private
type TB is new Integer range 1 .. TG;
end Generic_Package;
package body Generic_Package is
function F_TB return TB is
begin
return 1;
end F_TB;
procedure P_TB (B : TB) is
begin
Put_Line (B'Image);
end P_TB;
end Generic_Package;
use all type Not_Generic.TA;
package Generic_1 is new Generic_Package (10);
use all type Generic_1.TB;
package Generic_2 is new Generic_Package (10);
use all type Generic_2.TB;
My_A : Not_Generic.TA;
My_B1 : Generic_1.TB := F_TB; -- (1)
My_B2 : Generic_2.TB;
begin
My_A := F_TA; -- (2)
P_TA (My_A); -- (3)
P_TB (My_B1); -- (4)
My_B2 := F_TB; -- (5)
P_TB (My_B2); -- (6)
end Test_Use_Type;
-----------------------------------------
The output is :
gcc -c test_use_type.adb
test_use_type.adb:56:04: error: "P_TB" is not visible (more references follow)
test_use_type.adb:56:04: error: non-visible declaration from "Generic_2" at
line 28, instance at line 46
test_use_type.adb:56:04: error: non-visible declaration from "Generic_1" at
line 28, instance at line 44
test_use_type.adb:57:13: error: "F_TB" is not visible
test_use_type.adb:57:13: error: non-visible declaration from "Generic_2" at
line 27, instance at line 46
test_use_type.adb:57:13: error: non-visible declaration from "Generic_1" at
line 27, instance at line 44
For some reason (1) works, but not (5) and all others.