https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119699
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #3) > Yes because REG_RETURNED does not work always. I will file a new bug for > that. PR 120214 . As for tail call, that is a different issue; I have not fully looked into yet. Cannot tail-call: call and return value are different: x::x (_2(D)); The call flags are definitely set but I will need to debug what is going wrong.