1/* PR 35701 */ 2/* { dg-do compile } */ 3/* { dg-options "-Wconversion -Wsign-conversion" } */ 4/* { dg-require-effective-target int32plus } */ 5 6typedef struct _my_struct_t { 7 unsigned int small:1; 8 unsigned int big:31; 9} my_struct_t, *my_struct_p_t; 10 11void 12my_func1(unsigned int sm, unsigned int bi, my_struct_p_t msp) 13{ 14 msp->small = sm; /* { dg-warning "conversion" } */ 15 msp->big = bi; /* { dg-warning "conversion" } */ 16} 17 18void 19my_func2(unsigned int sm, unsigned int bi, my_struct_p_t msp) 20{ 21 msp->small = sm & 1U; 22 msp->big = bi & 0x7fffffffU; 23} 24 25unsigned short 26my_func3(unsigned int sm) 27{ 28 unsigned short res; 29 res = sm & 0xff20U; 30 return res; 31} 32