PR middle-end/34029
* tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
for verifying purposes if they are is_gimple_min_invariant.
* gcc.c-torture/compile/pr34029-1.c: New testcase.
* gcc.c-torture/compile/pr34029-2.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131325
138bc75d-0d04-0410-961f-
82ee72b054a4
+2008-01-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34029
+ * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
+ for verifying purposes if they are is_gimple_min_invariant.
+
2008-01-04 Aldy Hernandez <aldyh@redhat.com>
PR tree-optimization/34448
+2008-01-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34029
+ * gcc.c-torture/compile/pr34029-1.c: New testcase.
+ * gcc.c-torture/compile/pr34029-2.c: Likewise.
+
2008-01-04 Jakub Jelinek <jakub@redhat.com>
PR gcov-profile/34609
--- /dev/null
+static const char s[] = "ab.cd.efghijk";
+
+int
+foo (const char *x)
+{
+ const char *a;
+ int b = 0;
+
+ a = __builtin_strchr (s, '.');
+ if (a == 0)
+ b = 1;
+ else if ((a = __builtin_strchr (a + 1, '.')) == 0)
+ b = 1;
+ else if (__builtin_strncmp (s, x, a - s))
+ b = 1;
+ else if (__builtin_strncmp (a + 1, x + (a - s + 1), 4) < 0)
+ b = 1;
+
+ if (b)
+ return 4;
+ return 0;
+}
--- /dev/null
+static const char s[] = "ab.cd.efghijk";
+static const char t[] = "abcde";
+
+long
+foo (const char *x)
+{
+ const char *a;
+ long b = 0;
+
+ a = __builtin_strchr (s, '.');
+ return ((long) a) + (1 - (long) t);
+}
error ("address taken, but ADDRESSABLE bit not set");
return x;
}
+
+ /* Stop recursing and verifying invariant ADDR_EXPRs, they tend
+ to become arbitrary complicated. */
+ if (is_gimple_min_invariant (t))
+ *walk_subtrees = 0;
break;
}