diff options
author | Richard Guenther <rguenther@suse.de> | 2005-07-25 14:01:02 +0000 |
---|---|---|
committer | Richard Guenther <rguenther@suse.de> | 2005-07-25 14:01:02 +0000 |
commit | 415c18353a2f244778b9edec2c5ba97addfe6445 (patch) | |
tree | 8abddc3e21ff52977a1396773b8d854e87fe17ce | |
parent | 6979dbd5182ea1d22d194acbd027717460f39fdf (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/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; } |