mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
c8998cdece
Any stack pointer value greater than or equal to the original one used to be OK for stack analysis to recognize an instruction as a return. This commit changes this policy by collecting the value of the stack pointer on all the return points and, at the end, elect a final stack pointer value. All non-compliant returns are marked a `BranchType::BrokenReturn`. The function is now considered fake only if all the return instructions agree on a specific value of the stack pointer, and it's lower than the original one. * Drop `BranchType::IndirectTail`. * `s/BranchType::FunctionSummary/BranchType::RegularFunction/`.