-
Notifications
You must be signed in to change notification settings - Fork 440
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
Function pointers passed to and called in a variadic function are ignored in the call graph #551
Comments
This is a very good case. SVF can not handle variadic functions statically for now. We will put this on our list to seek help with this. |
@yuleisui I find that variadic arguments have been handled in the SVF here. Is it safe to remove this condition directly so we can connect variadic functions in the call graph? |
Because pointer analysis can be conservative, it can happen the argument mismatch even if the case is not variadic. |
@yuleisui Thanks for the explanation, but the following scene confuses me (I hope
but when I tried:
SVF answered:
|
I think one fix is to let matchargs return true if it calls a variadic function. Could you make a pull request? |
Sure, PTAL #1031 |
Consider the following C program:
The corresponding call graph generated by
wpa -ander -dump-callgraph main.ll
:Problem: The call to
foo
frombar
is missing. However, ifbar
isn't variadic, the constructed call graph is correct.The text was updated successfully, but these errors were encountered: