PR target/83368
[official-gcc.git] / gcc / testsuite / gcc.dg / pr35701.c
blob4144430977d986f945ecece3ede53ec2ad7e560e
1 /* PR 35701 */
2 /* { dg-do compile } */
3 /* { dg-options "-Wconversion -Wsign-conversion" } */
4 /* { dg-require-effective-target int32plus } */
6 typedef struct _my_struct_t {
7 unsigned int small:1;
8 unsigned int big:31;
9 } my_struct_t, *my_struct_p_t;
11 void
12 my_func1(unsigned int sm, unsigned int bi, my_struct_p_t msp)
14 msp->small = sm; /* { dg-warning "conversion" } */
15 msp->big = bi; /* { dg-warning "conversion" } */
18 void
19 my_func2(unsigned int sm, unsigned int bi, my_struct_p_t msp)
21 msp->small = sm & 1U;
22 msp->big = bi & 0x7fffffffU;
25 unsigned short
26 my_func3(unsigned int sm)
28 unsigned short res;
29 res = sm & 0xff20U;
30 return res;