https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116832

--- Comment #2 from Liam Powell <liam at liampwll dot com> ---
Here is another example I have found. In this case just one accept triggers
both selects. All Puts here are executed.

with Ada.Text_IO; use Ada.Text_IO;
with System;

procedure Example is
   task A is
      entry A;
   end A;

   task body A is
   begin
      delay 3.0;
      accept A;
      Ada.Text_IO.Put ("A");
   end A;
begin
   select
      A.A;
      Ada.Text_IO.Put ("B");
   then abort
      select
         A.A;
         Ada.Text_IO.Put ("C");
      then abort
         A.A;
      end select;
      Ada.Text_IO.Put ("D");
      A.A;
   end select;
end Example;

Reply via email to