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);

Reply via email to