aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2018-12-11 11:09:41 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-12-11 11:09:41 +0000
commit56bad7dbfb28ef984d23ff9f69de5db431d02a15 (patch)
tree0ff7eb418285fe6af1d3921a51cbadc66c815f63
parentacbdd83d73ce56d1367581e1cbd78f85e9b4b0bf (diff)
downloadgcc-56bad7dbfb28ef984d23ff9f69de5db431d02a15.zip
gcc-56bad7dbfb28ef984d23ff9f69de5db431d02a15.tar.gz
gcc-56bad7dbfb28ef984d23ff9f69de5db431d02a15.tar.bz2
[Ada] Fix an ICE on instantiated subprogram with -gnatc
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. From-SVN: r266984
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/gcc-interface/trans.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index c162cac..5169d0a 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -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
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index db9223e..5caba99 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/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;