why function use and def show different parameter number? #3561
-
sub11636 have 4 arguments when invoke it, but in definitions only 2 arguments. how can I make him the same? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
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 |
Beta Was this translation helpful? Give feedback.
-
As a follow-up, I just now noticed your version number. If this is an arm/thumb binary there were some major fixes that landed for that just after the last stable. Any dev build after June 1 or so should have had the fix for that issue. |
Beta Was this translation helpful? Give feedback.
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 oncall_instr.operation
).