You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The stack change value is invalid on either MFC80U.DLL, or demangled functions, where the function returns a class/struct (not pointer, or reference of a class).
To reproduce the issue, just create a new project, import the attached exe, and decompile.
Three of MFC80U.DLL calls (CString::Left, CString::Right, CString::Mid) changes the stack by -8 on return, but according to the decompiler it changes only -4 (as can seen on the screenshot). Tried to change the value by hand, but the sw did not allow me to change it to -8, set it to 8 instead.
Most likely it is beacuse the return value is a class, and the compiler passes the returning class pointer as an additional parameter, and ghidra forgets about it.
The stack change value is invalid on either MFC80U.DLL, or demangled functions, where the function returns a class/struct (not pointer, or reference of a class).
To reproduce the issue, just create a new project, import the attached exe, and decompile.
Three of MFC80U.DLL calls (CString::Left, CString::Right, CString::Mid) changes the stack by -8 on return, but according to the decompiler it changes only -4 (as can seen on the screenshot). Tried to change the value by hand, but the sw did not allow me to change it to -8, set it to 8 instead.
Most likely it is beacuse the return value is a class, and the compiler passes the returning class pointer as an additional parameter, and ghidra forgets about it.
ghidra_bug.zip
The text was updated successfully, but these errors were encountered: