https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112727
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #5) > It has been added that way by Marek in > r8-727-g6b6ae9eb9c06b6911573bb9a13cf98b5a7c98b78 Yet another option would be to keep it, but x = unshare_expr (r); And perhaps first verify r doesn't have too many subtrees and punt in that case, so that the unsharing doesn't result in huge IL in pathological cases.