Compiler bug or illegal code for entry_family?

From: Lutz Donnerhacke (lutz_at_iks-jena.de)
Date: 03/31/04


Date: Wed, 31 Mar 2004 10:38:50 +0000 (UTC)

procedure gnat_gigi_116 is
   type Entries is range 1 .. 16;
   
   protected type X is
      entry Call(Entries);
   end X;
   
   protected body X is
      entry Call(for e in Entries)
      when True is
        i : Entries := e;
      begin
        null;
      end Call;
   end X;
begin
   null;
end gnat_gigi_116;


gcc -c gnat_gigi_116.adb
+===========================GNAT BUG DETECTED==============================+
| 3.3.2 (i686-pc-linux-gnu) Gigi abort, Code=116 |
| Error detected at gnat_gigi_116.adb:11:24 |
| Please submit a bug report; see http://gcc.gnu.org/bugs.html. |
| Include the entire contents of this bug box in the report. |
| Include the exact gcc or gnatmake command that you entered. |
| Also include sources listed below in gnatchop format |
| concatenated together with no headers between files. |
+==========================================================================+

Please include these source files with error report

gnat_gigi_116.adb

compilation abandoned
gnatmake: "gnat_gigi_116.adb" compilation error

Should I submit a bug report or fix my code?
Obvious fix:
procedure gnat_gigi_116 is
   type Entries is range 1 .. 16;
   
   protected type X is
      entry Call(Entries)(i : Entries);
   end X;
   
   protected body X is
      entry Call(for e in Entries)(i : Entries)
      when True is
      begin
        null;
      end Call;
   end X;
begin
   null;
end gnat_gigi_116;



Relevant Pages