It seems logical atleast to me (perhaps not bothered with possibly because of exception propagation complexities) that upon storage error upon stack exhaustion then a local exception handler that simply returns and sets an existing out status should enable the application to continue.
For ARM cortex-m0 I end up in the hardfault handler which makes sense but for amd64 native I get the following which surprised me
__gnat_error_handler at init.c:592
procedure Storage_Exception is
begin
declare
Storaflow : String (1 .. 214000000) := [others => ' '];
begin
-- this code won't be reached
Storaflow (1) := '2';
exception
when Storage_Error =>
return;
end;
exception
when Storage_Error =>
return;
end;
Thoughts welcome. Note that the declare trick avoids propagation for constraint error exceptions which would normally not be caught by a local handler if in the procedures main declaration section but does not for storage_error.