Skip to content

why function use and def show different parameter number? #3561

Answered by rssor
baikaishiuc asked this question in Q&A
Discussion options

You must be logged in to vote

This can happen for a variety of reasons but is usually a result of analysis having low confidence in function parameters (indicated by the grey color on the types) identified during analysis.

If you change the function type and confirm it with the current prototype the confidence will be promoted, at which point call sites will generally adhere more rigorously to the callee type, barring situations such as variadic args or call type overrides.

There are a few other situations that can also trigger this behavior, such as analysis losing track of the stack pointer and being unable to translate calls correctly (look for call IL instructions with a _UNTYPED suffix on call_instr.operation).

Replies: 2 comments 3 replies

Comment options

You must be logged in to vote
3 replies
@baikaishiuc
Comment options

@rssor
Comment options

@baikaishiuc
Comment options

Answer selected by baikaishiuc
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants