https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120409

--- Comment #11 from H.J. Lu <hjl.tools at gmail dot com> ---
typeck.cc has

     /* We can't initialize a register from a AGGR_INIT_EXPR.  */
      else if (! cfun->returns_struct
               && TREE_CODE (retval) == TARGET_EXPR
               && TREE_CODE (TARGET_EXPR_INITIAL (retval)) == AGGR_INIT_EXPR)
        retval = build2 (COMPOUND_EXPR, TREE_TYPE (retval), retval,
                         TARGET_EXPR_SLOT (retval));

This is triggered for x32 and set_target_expr_eliding doesn't set
TARGET_EXPR_ELIDING_P for COMPOUND_EXPR.

Reply via email to