https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79825
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- gimplifying D.2394 = TARGET_EXPR <D.2392, p1>;, <<< Unknown tree: empty_class_expr >>>; doesn't hit the else if (simple_empty_class_p (TREE_TYPE (op0), op1)) { /* Remove any copies of empty classes. Also drop volatile variables on the RHS to avoid infinite recursion from gimplify_expr trying to load the value. */ case. Fix: Index: gcc/cp/cp-gimplify.c =================================================================== --- gcc/cp/cp-gimplify.c (revision 245863) +++ gcc/cp/cp-gimplify.c (working copy) @@ -549,6 +549,7 @@ simple_empty_class_p (tree type, tree op return ((TREE_CODE (op) == COMPOUND_EXPR && simple_empty_class_p (type, TREE_OPERAND (op, 1))) + || TREE_CODE (op) == EMPTY_CLASS_EXPR || is_gimple_lvalue (op) || INDIRECT_REF_P (op) || (TREE_CODE (op) == CONSTRUCTOR