[Patch,committed] Ensure that gfortran.dg/achar_2.f90 can fail

Steve Kargl sgk@troutmask.apl.washington.edu
Thu Oct 31 16:58:00 GMT 2019


On Thu, Oct 31, 2019 at 05:46:38PM +0100, Jakub Jelinek wrote:
> On Thu, Oct 31, 2019 at 09:42:07AM -0700, Steve Kargl wrote:
> > On Thu, Oct 31, 2019 at 05:12:39PM +0100, Tobias Burnus wrote:
> > > At some point, 'call abort()' was changed to 'stop'; this works fine as 
> > > long as exit status is != 0. At least on my Linux system, this works 
> > > until 255. (Which matches POSIX, which requires 8 bits.) For "stop 256", 
> > > I get an exit status == 0.
> > >
> > > I am not sure whether other systems break earlier, but I assume most 
> > > support 0 to 255. Currently, gcc/testsuite/*fortran* has those maximal 
> > > 'stop' counts:
> > 
> > FreeBSD's manpage for exit(3) (and _Exit()) states
> > 
> >      Both functions make the low-order eight bits of the status
> >      argument available to a parent process which has called a
> >      wait(2)-family function.
> > 
> > I suspect the other BSDs also follow posix.  I wonder if gfortran
> > should either apply a mask to the stop code or simply map nonzero
> > values to one of EXIT_FAILURE, SIGQUIT, or SIGABRT.  Perhaps,
> 
> I think being able to supply the exact code to shell is useful,
> perhaps we should just use
>   exit (code > 255 ? 255 : code);
> or similar?
> 

I'm fine with this option.  I'll work up a patch
later with the above, and add some documentation
to the gfortran manual.

-- 
Steve



More information about the Gcc-patches mailing list