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