Is your feature request related to a problem? Please describe.
I'm always frustrated when inlining of a function call either isnt available (i.e used multiple times within the function) or is impossibe to determine (i.e. SEH implementations whereby calls are data driven).
Describe the solution you'd like
When a "stack frame" is setup for a function this frame needs to be passable/assignable to other functions in order for them to access the correct stack-based (parameter/local variables) when performing the static decompilation.
Describe alternatives you've considered
Creating a datatype containing the information in a particular "stack frame" and assigning a pointer to that to the other function's stack base register. This can only hold the local variables as you would need to assign the register to the middle of the datatype (may be possible with "Adjust Pointer Offset" somehow). Also as analysis progresses the original stack frame will change, obsoleting your datatype!
Additional context
See discussion #6153 and issue #2477.
Possible Implementable Solution
Assign the address of the function's entry point to each "stack frame" created and add an option in the Edit Function dialog to "Use Alternate Stack Frame" where the user can enter the appropriate address.
Is your feature request related to a problem? Please describe. I'm always frustrated when inlining of a function call either isnt available (i.e used multiple times within the function) or is impossibe to determine (i.e. SEH implementations whereby calls are data driven).
Describe the solution you'd like When a "stack frame" is setup for a function this frame needs to be passable/assignable to other functions in order for them to access the correct stack-based (parameter/local variables) when performing the static decompilation.
Describe alternatives you've considered Creating a datatype containing the information in a particular "stack frame" and assigning a pointer to that to the other function's stack base register. This can only hold the local variables as you would need to assign the register to the middle of the datatype (may be possible with "Adjust Pointer Offset" somehow). Also as analysis progresses the original stack frame will change, obsoleting your datatype!
Additional context See discussion #6153 and issue #2477.
Possible Implementable Solution Assign the address of the function's entry point to each "stack frame" created and add an option in the
Edit Function
dialog to "Use Alternate Stack Frame" where the user can enter the appropriate address.