aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/tree-dfa.c3
-rw-r--r--gcc/tree-flow-inline.h2
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;
}