111
|
1 /* PR c/78408 */
|
|
2 /* { dg-do compile { target size32plus } } */
|
|
3 /* { dg-options "-O2 -fdump-tree-fab1-details" } */
|
|
4 /* { dg-final { scan-tree-dump-not "after previous" "fab1" } } */
|
|
5
|
|
6 struct S { char a[32]; };
|
|
7 struct T { char a[65536]; };
|
|
8 void bar (int, struct S *, struct S *, struct T *, struct T *);
|
|
9 void baz (char *, char *);
|
|
10
|
|
11 void
|
|
12 f1 (void)
|
|
13 {
|
|
14 struct S a, b;
|
|
15 struct T c, d;
|
|
16 __builtin_memset (&b, 2, sizeof (b));
|
|
17 a = b;
|
|
18 __builtin_memset (&d, 3, sizeof (d));
|
|
19 c = d;
|
|
20 bar (3, &a, &b, &c, &d);
|
|
21 }
|
|
22
|
|
23 void
|
|
24 f2 (void)
|
|
25 {
|
|
26 char a[64], b[64];
|
|
27 __builtin_memset (a + 13, 2, 27);
|
|
28 __builtin_memcpy (b + 4, a + 17, 24);
|
|
29 baz (a, b);
|
|
30 }
|
|
31
|
|
32 void
|
|
33 f3 (void)
|
|
34 {
|
|
35 char a[64], b[64];
|
|
36 __builtin_memset (a + 13, 2, 27);
|
|
37 __builtin_memcpy (b + 4, a + 12, 5);
|
|
38 baz (a, b);
|
|
39 }
|