mirror of
https://github.com/morluto/rea.git
synced 2026-11-14 10:43:30 +00:00
Ghidra's Non-Returning Functions - Discovered analyzer can mark a returning callee, such as an imported operator new thunk, as non-returning. Ghidra then clears the fallthrough at each call site and refits the callers, so a constructor decompiles to a few plausible lines. REA reported the terminal call with the FunctionManager flag but did not say the result omits the code after it or how to compare. That analyzer bookmarks each entry it marks with the Analysis comment "Non-Returning Function Found" (Ghidra 11.0 through 12.1.4 source); the name-list Known analyzer writes "Non-Returning Function Identified". When a terminal call's callee, or the function a thunk forwards to, carries the Discovered bookmark, the call's limitation now says the flag was inferred, and the function adds one address-free limitation that its body and pseudocode end at that call and omit the following code if the callee returns, with the REA_GHIDRA_DISABLED_ANALYZERS comparison. A flag without the bookmark keeps an unknown origin. The function-boundary observation contract moves to v5 so snapshots from earlier bridges are not replayed without the qualification. Refs #10365 Co-Authored-By: gensokyo-dev <gensokyo-dev@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>