You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The pointer analysis treats calls to exported functions in the runtime package specially because when the analysis was written, the package was mostly C code so there wasn't much to analyze. Instead of looking at the source for that package, the analysis has built-in knowledge of the aliasing and callgraph effects of the important functions, which are few.
Even though the runtime package is now in Go, I would not revisit this decision because the package makes such extensive use of unsafe.Pointer conversions, which the pointer analysis handles unsoundly: it treats a conversion from unsafe.Pointer to T just like new(T).
You can see the list of PTA intrinsics in golang.org/x/tools/go/pointer/intrinsics.go.
So, working as intended, and tough luck if you work on the runtime. :(
Hm, I'm having trouble understanding how PTA and package runtime instrinsics would be relevant to the particular issue I pointed out. All of the efaceOf calls are direct calls via the function's name, so it's odd to me that it finds a couple of them, but not all?
At head (f762d0d, golang/tools@d94e6fe0), if I run
and go to http://localhost:6060/src/runtime/runtime2.go, and click "func" in
it lists only two callers:
But there's at least several more:
CC @alandonovan
The text was updated successfully, but these errors were encountered: