https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116832
--- Comment #5 from Liam Powell <liam at liampwll dot com> --- See the following code (shortened for clarity). There's probably a way to do this without them, but our workaround works here. select Connection.Hold; -- Continues after update is done then abort declare Occurrence : Ada.Exceptions.Exception_Occurrence; begin select Fatal_Exception_Occurrence_Holder.Get (Occurrence); then abort Update_Check.Block_Until_Check_For_Update; -- Prompt user if required Update_Check.Block_Until_Update_Allowed; -- Tell user update is running end select; Fatal_Exception_Occurrence_Holder.Get (Occurrence); -- Above line to compensate for GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116832 -- Display error end; Connection.Hold; -- Continues after update is done end select;