-
Notifications
You must be signed in to change notification settings - Fork 438
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorrect callback resolution in pointer analysis #1607
Comments
@jumormt could you take a look at this case? |
It should be correct if you rename |
Nope, it didn't help. |
@Frankenween I believe your observation is correct. The opaque pointer version bitcode miss a gep before loading. This can be solved by turning the |
This option basically treats the first field equally as the base object.
|
Life-saving, thanks! I'll try it on my main project later |
While using the wonderful SVF tool for building callgraphs I noticed that some pretty obvious callbacks are not resolved.
Problematic pattern looks like this:
Call
test1 -> f1
is not resolved. However, when there are several callbacks in a struct, the rest seem to be resolved nicely. I thought the problem is withload
vsgep
:But changing first load to gep manually didn't help.
In my task the problem appeared with different fields, not with the first only. Looks like the problem is not Andersen-specific as almost every analysis failed. On the provided test Steensgaard succeeded, but it also failed in my original problem.
test.zip - here test file, its IR and the result of
wpa -ander -dump-callgraph
.The text was updated successfully, but these errors were encountered: