https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65798
--- Comment #1 from Ian Lance Taylor <ian at airs dot com> --- The libgo code actually follows the lead of the gc code here. The 1.3 code, in C, said this: } else if((f = runtime·findfunc(rpc[1])) == nil) { retfile = runtime·emptystring; retline = 0; retbool = true; // have retpc at least The 1.4 code, in Go, says this: f := findfunc(rpc[1]) if f == nil { // TODO(rsc): Probably a bug? // The C version said "have retpc at least" // but actually returned pc=0. ok = true return } So it is clearly possible for the gc version of runtime.Caller to return ok == true with no actual information. However, since this is apparently common with gc, and apparently happens with gccgo (though I don't know why--it would be nice to report that as a separate bug) I'll adjust gccgo.