The following should compile quietly:

$ gcc -c p-proc.ads -gnatc
procedure P.Proc is new G;

with Q;

package P is

  generic procedure G;

end P;

with System;
with Unchecked_Conversion;

package Q is

  generic package Inner_G is

    type T is access all Integer;

    function Cnv is new Unchecked_Conversion (System.Address, T);

  end Inner_G;

end Q;

Tested on x86_64-pc-linux-gnu, committed on trunk

2018-12-11  Eric Botcazou  <ebotca...@adacore.com>

gcc/ada/

        * gcc-interface/trans.c (elaborate_all_entities_for_package):
        Skip aliasing subprograms.
--- gcc/ada/gcc-interface/trans.c
+++ gcc/ada/gcc-interface/trans.c
@@ -9278,7 +9278,9 @@ elaborate_all_entities_for_package (Entity_Id gnat_package)
 	continue;
       if (kind == E_Operator)
 	continue;
-      if (IN (kind, Subprogram_Kind) && Is_Intrinsic_Subprogram (gnat_entity))
+      if (IN (kind, Subprogram_Kind)
+	  && (Present (Alias (gnat_entity))
+	      || Is_Intrinsic_Subprogram (gnat_entity)))
 	continue;
       if (Is_Itype (gnat_entity))
 	continue;

Reply via email to