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]".