]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
testsuite: Add testcase for already fixed PR [PR112924]
authorJakub Jelinek <jakub@redhat.com>
Sat, 9 Dec 2023 14:29:51 +0000 (15:29 +0100)
committerJakub Jelinek <jakub@redhat.com>
Sat, 9 Dec 2023 14:29:51 +0000 (15:29 +0100)
This testcase got fixed with
r14-6132-g50f2a3370d177f8fe9bea0461feb710523e048a2 .
I'm just adding a testcase so that it doesn't reappear.

2023-12-09  Jakub Jelinek  <jakub@redhat.com>

PR tree-optimization/112924
* gcc.dg/pr112924.c: New test.

gcc/testsuite/gcc.dg/pr112924.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.dg/pr112924.c b/gcc/testsuite/gcc.dg/pr112924.c
new file mode 100644 (file)
index 0000000..c8a51d4
--- /dev/null
@@ -0,0 +1,26 @@
+/* PR tree-optimization/112924 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -w" } */
+/* { dg-additional-options "-msse2" { target i?86-*-* x86_64-*-* } } */
+
+struct S { long a; char b[64]; };
+void foo (struct S a);
+char c;
+int d[3541];
+
+static void
+bar (struct S *s, char *p)
+{
+  unsigned int a = sizeof (d) - sizeof (int) - s->a;
+  long c = __builtin_object_size (s, 0);
+  for (; a >= 64; a -= 64, p += 4);
+    __builtin___memcpy_chk (s, p, a, c);
+}
+
+void
+baz (void)
+{
+  struct S s = {};
+  bar (&s, &c);
+  foo (s);
+}