The following testcase, reduced from mulvdi3, causes an ICE.

int
foo (int c)
{
  if (c >= 0)
    return 1;
  else if (c == -1)
    return 1;

  return 0;
}

internal compiler error: in simplify_cond_and_lookup_avail_expr, at
tree-ssa-dom.c:2099

Most likely, this patch caused the problem.

2005-01-15  Jakub Jelinek  <[EMAIL PROTECTED]>

        PR tree-optimization/19060
        * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
        Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
        (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
        and handle extract_range_from_cond returning false.
        * fold-const.c (fold): Optimize comparisons with min/max even for
        width > HOST_BITS_PER_WIDE_INT.

-- 
           Summary: [4.0 Regression] bootstrap failure
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: critical
          Priority: P2
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: kazu at cs dot umass dot edu
                CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: i686-pc-linux-gnu, powerpc, etc


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

Reply via email to