re PR go/65798 (runtime.Caller returns ok=true when return data is invalid)
authorIan Lance Taylor <ian@gcc.gnu.org>
Fri, 17 Apr 2015 21:59:10 +0000 (21:59 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Fri, 17 Apr 2015 21:59:10 +0000 (21:59 +0000)
PR go/65798
runtime: In Caller don't return ok == true if PC == 0.

GCC PR 65798 reports that this can happen in some cases.

From-SVN: r222204

libgo/runtime/go-caller.c

index ad151ecea8ea0e2fb88122f787e921ccdde5b883..ed6fd107b0e1b702b47788ac5d100701d812a2cc 100644 (file)
@@ -166,7 +166,7 @@ Caller (int skip)
 
   runtime_memclr (&ret, sizeof ret);
   n = runtime_callers (skip + 1, &loc, 1, false);
-  if (n < 1)
+  if (n < 1 || loc.pc == 0)
     return ret;
   ret.pc = loc.pc;
   ret.file = loc.filename;