1 /* PR optimization/15296. The delayed-branch scheduler caused code that
2 SEGV:d for CRIS; a register was set to -1 in a delay-slot for the
3 fall-through code, while that register held a pointer used in code at
6 typedef int __attribute__ ((mode (__pointer__
))) intptr_t;
19 void f (void *, struct s1
*, const union u0
*, W
, W
, W
)
20 __attribute__ ((__noinline__
));
21 void g (void *, char *) __attribute__ ((__noinline__
));
24 f (void *a
, struct s1
*b
, const union u0
*h
, W v0
, W v1
, W v4
)
28 union u0
**v5
= b
->m0
;
30 union u0
**d
= &v5
[0];
60 void g (void *a
, char *b
) { abort (); }
65 union u0 uv
[] = {{ .i
= 111 }, { .i
= 222 }, { .i
= 333 }, { .i
= 444 }};
66 struct s1 s
= { 0, {{ .i
= 555 }, { .i
= 0 }, { .i
= 999 }, { .i
= 777 }}};
67 f (0, &s
, 0, 20000, 10000, (W
) uv
);
68 if (s
.m1
[0].i
!= (W
) uv
|| s
.m1
[1].i
!= 0 || s
.m1
[2].i
!= 999
69 || s
.m1
[3].i
!= 777 || uv
[0].i
!= 111 || uv
[1].i
!= 222
70 || uv
[2].i
!= 0 || uv
[3].i
!= 444)