> Presumably the rx back-end and more precisely TARGET_FRAME_POINTER_REQUIRED, > which needs to return true if cfun->calls_alloca.
The rx back-end doesn't define TARGET_FRAME_POINTER_REQUIRED, as the documentation says the compiler handles target-independent reasons why there needs to be a frame pointer. But, the default TARGET_FRAME_POINTER_REQUIRED just returns false - shouldn't it, by default, check for calls_alloca ? Also, I added that hook and set it to return true always, and it didn't fix the bug. There is a frame pointer (there was before, too), but there's also a stack adjustment after the pseudo-alloca which the dwarf2 stuff doesn't know about. The last stack adjustment it sees is the rx backend's adjustment to allocate the frame: _medium_frame: pushm r6-r12 add #-4, r0, r6 ; marked frame-related (fp = sp - 4) mov.L r6, r0 ; marked frame-related (sp = fp) . . . ; stack checking code goes here add #0xffffc000, r0 ; not marked frame-related 00000000 <_medium_frame>: 0: 6e 6c pushm r6-r12 2: 71 06 fc add #-4, r0, r6 5: ef 60 mov.l r6, r0 7: 2e: 72 00 00 c0 add #0xffffc000, r0, r0 00000014 00000030 00000000 FDE cie=00000000 pc=00000000..00000043 DW_CFA_advance_loc4: 2 to 00000002 DW_CFA_def_cfa_offset: 32 DW_CFA_offset: r12 at cfa-8 . . . DW_CFA_offset: r6 at cfa-32 DW_CFA_advance_loc4: 3 to 00000005 DW_CFA_def_cfa: r6 ofs 36 DW_CFA_advance_loc4: 2 to 00000007 DW_CFA_def_cfa_register: r0 ( that's it for debug info ) Perhaps the stack-check code should set FRAME_RELATED on any stack adjustment insn?