This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/37084] [4.4 regression] ICE in gimple_assign_rhs1



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]