------- Comment #3 from jakub at gcc dot gnu dot org  2008-08-12 08:46 -------
      /* With return slot optimization we can end up with
         non-gimple (foo *)&this->m, fix that here.  */
      if ((is_gimple_assign (stmt)
            && gimple_assign_rhs_code (stmt) == NOP_EXPR
            && !is_gimple_val (gimple_assign_rhs1 (stmt)))
          || id->regimplify)
        {
          tree new_rhs;
          new_rhs = force_gimple_operand_gsi (&copy_gsi,
                                              gimple_assign_rhs1 (stmt),
                                              true, NULL, true, GSI_SAME_STMT);
          gimple_assign_set_rhs1 (stmt, new_rhs);
        }
      else if (id->regimplify)
        gimple_regimplify_operands (stmt, &copy_gsi);

IMNSHO we just need to kill the || id->regimplify from the first if condition,
the then body isn't able to deal with it and the correct
gimple_regimplify_operands call never triggers.


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
                   |dot org                     |
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2008-08-12 08:39:51         |2008-08-12 08:46:30
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37084

Reply via email to