Fortran STOP and ERROR STOP use a different function to print the "STOP" string and the message string. On GCN this results in out-of-order output, such as "<msg>ERROR STOP ".
This patch fixes the problem by making estr_write use the proper Fortran write, not C printf, so both parts are now output the same way. This also ensures that both parts are output to STDERR (not that that means anything on GCN). 2018-09-05 Kwok Cheung Yeung <k...@codesourcery.com> libgfortran/ * runtime/minimal.c (estr_write): Define in terms of write. --- libgfortran/runtime/minimal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libgfortran/runtime/minimal.c b/libgfortran/runtime/minimal.c index 8940f97..b6d26fd 100644 --- a/libgfortran/runtime/minimal.c +++ b/libgfortran/runtime/minimal.c @@ -196,7 +196,7 @@ sys_abort (void) #undef st_printf #define st_printf printf #undef estr_write -#define estr_write printf +#define estr_write(X) write(STDERR_FILENO, (X), strlen (X)) #if __nvptx__ /* Map "exit" to "abort"; see PR85463 '[nvptx] "exit" in offloaded region doesn't terminate process'. */