------- Comment #2 from rguenth at gcc dot gnu dot org  2006-05-23 14:27 -------
      /* Turn (a OP c1) OP c2 into a OP (c1+c2).  */
      if (TREE_CODE (arg0) == code && host_integerp (arg1, false)
          && TREE_INT_CST_LOW (arg1) < TYPE_PRECISION (type)
          && host_integerp (TREE_OPERAND (arg0, 1), false)
          && TREE_INT_CST_LOW (TREE_OPERAND (arg0, 1)) < TYPE_PRECISION (type))
        {

this should read TREE_CODE (op0) == code.  Or

  if (kind == tcc_comparison)
    {
      STRIP_SIGN_NOPS (arg0);
      STRIP_SIGN_NOPS (arg1);
    }
  else
    {
      STRIP_NOPS (arg0);
      STRIP_NOPS (arg1);
    }

should use STRIP_SIGN_NOPS for arg0 and shifts.


-- 


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

Reply via email to