1/* { dg-do compile } */ 2/* { dg-options "-O2" } */ 3 4__extension__ typedef __SIZE_TYPE__ size_t; 5typedef unsigned char uint8_t; 6typedef unsigned short int uint16_t; 7typedef unsigned long long int uint64_t; 8struct magic { 9 uint8_t mask_op; 10 union { 11 uint64_t _mask; 12 } _u; 13 union VALUETYPE { 14 uint16_t h; 15 } value; 16}; 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