PR 65798 says that in some cases runtime.Caller can return with ok ==
true when PC == 0. It's not clear to me quite how that can happen,
but it's easy to avoid with this patch. Bootstrapped and ran Go
testsuite on x86_64-unknown-linux-gnu. Committed to mainline and GCC
5 branch.
Ian
diff -r 400258017261 libgo/runtime/go-caller.c
--- a/libgo/runtime/go-caller.c Fri Apr 17 14:27:33 2015 -0700
+++ b/libgo/runtime/go-caller.c Fri Apr 17 14:55:44 2015 -0700
@@ -166,7 +166,7 @@
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;