PR tree-optimization/25481
* tree-ssa-structalias.c (handle_ptr_arith): Handle
accesses we don't have a varinfo for.
* gcc.dg/torture/pr25481.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108763
138bc75d-0d04-0410-961f-
82ee72b054a4
+2005-12-18 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/25481
+ * tree-ssa-structalias.c (handle_ptr_arith): Handle
+ accesses we don't have a varinfo for.
+
2005-12-17 Jon Grimm <jgrimm2@us.ibm.com>
Janis Johnson <janis187@us.ibm.com>
Ben Elliston <bje@au.ibm.com>
+2005-12-18 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/25481
+ * gcc.dg/torture/pr25481.c: New testcase.
+
2005-12-18 Ulrich Weigand <uweigand@de.ibm.com>
PR rtl-optimization/21041
--- /dev/null
+/* { dg-do compile } */
+
+struct s {
+ int *blah;
+};
+
+static struct s array[] = {
+ { 0 }
+};
+
+void
+foo (struct s *p)
+{
+ unsigned int n = 1;
+ struct s *q = &array[n];
+ while (p < q)
+ p++;
+}
if (c2->type == ADDRESSOF && rhsoffset != 0)
{
varinfo_t temp = get_varinfo (c2->var);
-
- gcc_assert (first_vi_for_offset (temp, rhsoffset) != NULL);
- c2->var = first_vi_for_offset (temp, rhsoffset)->id;
+
+ /* An access one after the end of an array is valid,
+ so simply punt on accesses we cannot resolve. */
+ temp = first_vi_for_offset (temp, rhsoffset);
+ if (temp == NULL)
+ continue;
+ c2->var = temp->id;
c2->offset = 0;
}
else