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

Tobias Burnus tobias@codesourcery.com
Thu Oct 31 16:55:00 GMT 2019


On 10/31/19 5:42 PM, Steve Kargl wrote:
> 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,
>
> -  exit (code);
> +  exit (EXIT_FAILURE);


Or "exit (code > 255 ? EXIT_FAILURE : code);". I think EXIT_FAILURE is 1 
on most systems. I recall that windows interpreted exit(3) as abort, 
which can also be surprising. (But is fine for our testsuite purpose.)

SIGABRT sounds wrong for STOP as:

"Execution of a STOP statement initiates normal termination of 
execution.  Execution of an ERROR STOP statement initiates error 
termination of execution."

Otherwise, the standard states: "When an image is terminated by a STOP 
or ERROR STOP statement, its stop code, if any, is made available in a 
processor-dependent manner. If the stop-code is an integer, it is 
recommended that the value be used as the process exit status, if the 
processor supports that concept. If the stop-code in a STOP statement is 
of type character or does not appear, or if an end-program-stmt is 
executed, it is recommended that the value zero be supplied as the 
process exit status, if the processor supports that concept. If the 
stop-code in an ERROR STOP statement is of type character or does not 
appear, it is recommended that a processor-dependent nonzero value be 
supplied as the process exit status, if the processor supports that 
concept."

Cheers,

Tobias



More information about the Gcc-patches mailing list