From: pmderodat Date: Tue, 11 Dec 2018 11:09:41 +0000 (+0000) Subject: [Ada] Fix an ICE on instantiated subprogram with -gnatc X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=382dacb09e91e9289179ccc4c826d286b7d71dd2;p=thirdparty%2Fgcc.git [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 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 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index c162caca9bdd..5169d0a2e1ef 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2018-12-11 Eric Botcazou + + * gcc-interface/trans.c (elaborate_all_entities_for_package): + Skip aliasing subprograms. + 2018-12-11 Bob Duff * 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 db9223ef4a6b..5caba9947297 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;