https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93786
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aoliva at gcc dot gnu.org --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The change makes the STATEMENT_LIST non-TREE_SIDE_EFFECTS, so that it doesn't cause -fcompare-debug failures. Unfortunately, for the OBJ_TYPE_REF the tree is used twice, once in OBJ_TYPE_REF's second operand and once as the first argument of the call; because of the missing TREE_SIDE_EFFECTs save_expr isn't called on it (that would cause -fcompare-debug too), unshare_body doesn't unshare STATEMENT_EXPRs and as gimplification is destructive, this means that when we gimplify it once, we voidify it and destroy and the next time we gimplify it we ICE because it has void type. I'm afraid I don't really have a good solution here.