https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115201
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #7) > /* The parameter should be a real operand, so that phi node > created for it at the start of the function has the meaning > of copying the value. This test implies is_gimple_reg_type > from the previous condition, however this one could be > relaxed by being more careful with copying the new value > of the parameter (emitting appropriate GIMPLE_ASSIGN and > updating the virtual operands). */ > > So this has been a known issue for a long time now. Actually this is the correct one: /* Make sure there are no problems with copying. The parameter have a copyable type and the two arguments must have reasonably equivalent types. The latter requirement could be relaxed if we emitted a suitable type conversion statement. */ That has been there since tree-ssa was merged in.