]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[Ada] Fix an ICE on instantiated subprogram with -gnatc
authorpmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Dec 2018 11:09:41 +0000 (11:09 +0000)
committerpmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Dec 2018 11:09:41 +0000 (11:09 +0000)
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;

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

gcc/ada/

* gcc-interface/trans.c (elaborate_all_entities_for_package):
Skip aliasing subprograms.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266984 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/gcc-interface/trans.c

index c162caca9bddda0c7f333eb4e8e9c6bf0a2ad6b9..5169d0a2e1ef40ee1306228876e0213a94ed0a2b 100644 (file)
@@ -1,3 +1,8 @@
+2018-12-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (elaborate_all_entities_for_package):
+       Skip aliasing subprograms.
+
 2018-12-11  Bob Duff  <duff@adacore.com>
 
        * doc/gnat_ugn/gnat_utility_programs.rst: Update gnatmetric
index db9223ef4a6bc10145432705d814dfe7047c3a0f..5caba9947297e79959ab9155a85bffd570c70dcf 100644 (file)
@@ -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;