1 /* { dg-do compile } */ 2 /* { dg-options "-O2" } */ 3 4 __extension__ typedef __SIZE_TYPE__ size_t; 5 typedef unsigned char uint8_t; 6 typedef unsigned short int uint16_t; 7 typedef unsigned long long int uint64_t; 8 struct magic { 9 uint8_t mask_op; 10 union { 11 uint64_t _mask; 12 } _u; 13 union VALUETYPE { 14 uint16_t h; 15 } value; 16 }; cvt_16(union VALUETYPE * p,const struct magic * m)17void cvt_16(union VALUETYPE *p, const struct magic *m) 18 { 19 if (m->_u._mask) 20 p->h %= (uint16_t) m->_u._mask; 21 } 22