https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118321

--- Comment #7 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Thomas Schwinge from comment #6)
> Curious, for C we don't need any such changes, to handle nested functions,
> for example?  (I don't remember how these are implemented exactly.)

For internal functions – C and Fortran – there is frame pointer argument, which
does not show up at gimplifcation. Likewise, some targets also have odd ABI
rules where the way arguments are processed differently after a certain number
or for certain data types.

However, until after gimplify those do not play a role and get only added later
on. In case of internal functions, those get added via the "nested" pass, that
runs after "gimple"; still, at 'tree' level, no argument is used for those -
and in a tree dump, the frame pointer show up as "[static-chain: &FRAME.0]".

Reply via email to