diff options
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/tree-dfa.c | 3 | ||||
-rw-r--r-- | gcc/tree-flow-inline.h | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bd3dcdf08fe..530a11dfab2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2005-07-25 Richard Guenther <rguenther@suse.de> + + * 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 <bonzini@gnu.org> * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory. diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c index b9fecfbb890..beb83fbe829 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 30d13ab4ae4..7bcfefd1776 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; } |