predicates.md (general_movsrc_operand): Return 0 for memory and memory subreg of...
[gcc.git] / gcc / testsuite / gcc.c-torture / compile / pr49163.c
1 /* PR target/49163 */
2 struct S1
3 {
4 unsigned f0:18;
5 int f1;
6 } __attribute__ ((packed));
7
8 struct S2
9 {
10 volatile long long f0;
11 int f1;
12 };
13
14 struct S1 s1;
15 struct S2 s2;
16 const struct S2 s2array[2][1] = { };
17
18 struct S2 **sptr;
19
20 extern int bar (char a, long long b, int * c, long long d, long long e);
21 extern int baz (void);
22
23 int i;
24 int *ptr;
25
26 void
27 foo (int *arg)
28 {
29 for (i = 0; i < 1; i = baz())
30 {
31 *arg = *(int *)sptr;
32 *ptr = bar (*arg, s2.f1, ptr,
33 bar (s2array[1][0].f0, *arg, ptr, s1.f1, *ptr), *arg);
34 }
35 }