| /* { dg-do run } */ |
| /* { dg-require-effective-target int32plus } */ |
| |
| extern void abort (void); |
| |
| struct { |
| unsigned f2; |
| unsigned f3 : 15; |
| unsigned f5 : 3; |
| short f6; |
| } b = {0x7f8000, 6, 5, 0}, g = {8, 0, 5, 0}; |
| |
| short d, l; |
| int a, c, h = 8; |
| volatile char e[237] = {4}; |
| short *f = &d; |
| short i[5] = {3}; |
| char j; |
| int *k = &c; |
| |
| int |
| fn1 (unsigned p1) { return -p1; } |
| |
| void |
| fn2 (char p1) |
| { |
| a = p1; |
| e[0]; |
| } |
| |
| short |
| fn3 () |
| { |
| *k = 4; |
| return *f; |
| } |
| |
| int |
| main () |
| { |
| |
| unsigned m; |
| short *n = &i[4]; |
| |
| m = fn1 ((h && j) <= b.f5); |
| l = m > g.f3; |
| *n = 3; |
| fn2 (b.f2 >> 15); |
| if ((a & 0xff) != 0xff) |
| abort (); |
| |
| return 0; |
| } |