aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2005-07-25 14:01:02 +0000
committerRichard Guenther <rguenther@suse.de>2005-07-25 14:01:02 +0000
commit415c18353a2f244778b9edec2c5ba97addfe6445 (patch)
tree8abddc3e21ff52977a1396773b8d854e87fe17ce
parent6979dbd5182ea1d22d194acbd027717460f39fdf (diff)
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@102358 138bc75d-0d04-0410-961f-82ee72b054a4
-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;
}