+2011-11-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/51077
+ * tree-object-size.c (addr_object_size): Check TREE_CODE of
+ MEM_REF's operand rather than code of the MEM_REF itself.
+
2011-11-10 Andrew MacLeod <amacleod@redhat.com>
PR rtl-optimization/51040
2011-11-10 Jakub Jelinek <jakub@redhat.com>
+ PR middle-end/51077
+ * gcc.c-torture/compile/pr51077.c: New test.
+
PR rtl-optimization/51023
* gcc.c-torture/execute/pr51023.c: New test.
--- /dev/null
+/* PR middle-end/51077 */
+
+struct S { unsigned char s, t[256]; };
+
+void
+foo (const struct S *x, struct S *y, int z)
+{
+ int i;
+ for (i = 0; i < 8; i++)
+ {
+ const struct S *a = &x[i];
+ __builtin___memcpy_chk (y->t, a->t, z, __builtin_object_size (y->t, 0));
+ y = (struct S *) &y->t[z];
+ }
+}
unsigned HOST_WIDE_INT sz;
if (!osi || (object_size_type & 1) != 0
- || TREE_CODE (pt_var) != SSA_NAME)
+ || TREE_CODE (TREE_OPERAND (pt_var, 0)) != SSA_NAME)
{
sz = compute_builtin_object_size (TREE_OPERAND (pt_var, 0),
object_size_type & ~1);