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;