The libgo code to create a backtrace state would sometimes call stat(NULL). This didn't matter, since the stat failure would not cause any further problem, but it was pointless and sloppy. The problem was pointed out by Andreas Schwab in PR 86331. This patch removes it. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline.
Ian
Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 262120) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -baaaf1e0f1e9a54ea2dfe475154c85c83ec03740 +e1fcce0aec27b1f50ac0e736f39f4c806c2a5baa The first line of this file holds the git revision number of the last merge done from the gofrontend repository. Index: libgo/runtime/go-caller.c =================================================================== --- libgo/runtime/go-caller.c (revision 261819) +++ libgo/runtime/go-caller.c (working copy) @@ -116,7 +116,7 @@ __go_get_backtrace_state () argv[0] (http://gcc.gnu.org/PR61895). It would be nice to have a better check for whether this file is the real executable. */ - if (stat (filename, &s) < 0 || s.st_size < 1024) + if (filename != NULL && (stat (filename, &s) < 0 || s.st_size < 1024)) filename = NULL; back_state = backtrace_create_state (filename, 1, error_callback, NULL);