https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103006
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|middle-end |rtl-optimization
Keywords| |ra
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This looks like a Register allocator issue.
IN GCC 6 we have:
.L8:
movq %rsp, b(%rip)
movq %rsp, 48(%rsp)
call _Z2ffv
movq 112(%rsp), %rax
addq $160, %rsp
.cfi_def_cfa_offset 8
ret
While in GCC 7+ we get:
movl $2, f(%rip)
movl $6, e(%rip)
movq %rsp, b(%rip)
movq %rsp, 48(%rsp)
call _Z2ffv
movl 48(%rsp), %eax
addq $96, %rsp
.cfi_def_cfa_offset 8
ret