1 /* { dg-do run } */
2 /* { dg-require-effective-target int32plus } */
3
4 extern void abort (void);
5
6 struct {
7 unsigned f2;
8 unsigned f3 : 15;
9 unsigned f5 : 3;
10 short f6;
11 } b = {0x7f8000, 6, 5, 0}, g = {8, 0, 5, 0};
12
13 short d, l;
14 int a, c, h = 8;
15 volatile char e[237] = {4};
16 short *f = &d;
17 short i[5] = {3};
18 char j;
19 int *k = &c;
20
21 int
fn1(unsigned p1)22 fn1 (unsigned p1) { return -p1; }
23
24 void
fn2(char p1)25 fn2 (char p1)
26 {
27 a = p1;
28 e[0];
29 }
30
31 short
fn3()32 fn3 ()
33 {
34 *k = 4;
35 return *f;
36 }
37
38 int
main()39 main ()
40 {
41
42 unsigned m;
43 short *n = &i[4];
44
45 m = fn1 ((h && j) <= b.f5);
46 l = m > g.f3;
47 *n = 3;
48 fn2 (b.f2 >> 15);
49 if ((a & 0xff) != 0xff)
50 abort ();
51
52 return 0;
53 }
54