https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117098
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|target |middle-end --- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> --- sibcall is disabled by if (known_eq (arg->locate.offset.constant, i)) { /* Even though they appear to be at the same location, if part of the outgoing argument is in registers, they aren't really at the same location. Check for this by making sure that the incoming size is the same as the outgoing size. */ if (maybe_ne (arg->locate.size.constant, size_val)) sibcall_failure_1 = true; } (gdb) p size_val $1 = {coeffs = {52}} (gdb) p arg->locate.size.constant $2 = {coeffs = {56}}