diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bd3dcdf08fed..530a11dfab28 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2005-07-25 Richard Guenther + + * tree-dfa.c (mark_new_vars_to_rename): Protect against + calling with a PHI_NODE argument. + + * tree-flow-inline.h (overlap_subvar): Protect against + possible overflow. + 2005-07-25 Paolo Bonzini * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory. diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c index b9fecfbb8904..beb83fbe829b 100644 --- a/gcc/tree-dfa.c +++ b/gcc/tree-dfa.c @@ -708,6 +708,9 @@ mark_new_vars_to_rename (tree stmt) int v_may_defs_before, v_may_defs_after; int v_must_defs_before, v_must_defs_after; + if (TREE_CODE (stmt) == PHI_NODE) + return; + vars_in_vops_to_rename = BITMAP_ALLOC (NULL); /* Before re-scanning the statement for operands, mark the existing diff --git a/gcc/tree-flow-inline.h b/gcc/tree-flow-inline.h index 30d13ab4ae40..7bcfefd1776d 100644 --- a/gcc/tree-flow-inline.h +++ b/gcc/tree-flow-inline.h @@ -1518,7 +1518,7 @@ overlap_subvar (unsigned HOST_WIDE_INT offset, unsigned HOST_WIDE_INT size, { return true; } - else if (offset < sv->offset && (offset + size > sv->offset)) + else if (offset < sv->offset && (size > sv->offset - offset)) { return true; }