https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119314
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Possibly wrong code |Possibly wrong code
|generation for branch after |generation for branch after
|tail function call |leaf function call
--- Comment #12 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note the standard term is not tail function but rather leaf function. That is
part of the reason why I was confused before hand.
One thing you should look at is the generated code for LUT_GoThroughCache
since that seems like it might be the cause rather than inside
IsPlayerHandleValid/GetPlayerName.
What happens if you add attribute noipa on LUT_GoThroughCache ? Does that
help?
what about zero_call_used_regs("all") attribute on the definition of
LUT_GoThroughCache? Does that help?
I am suspecting LUT_GoThroughCache is corrupting registers that it should not
be.