diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/fixed-point/int-warning.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/fixed-point/int-warning.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/fixed-point/int-warning.c b/gcc/testsuite/gcc.dg/fixed-point/int-warning.c new file mode 100644 index 000000000..cf48e4ba2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/fixed-point/int-warning.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-options "-std=gnu99 -O2" } */ + +/* N1169 Conversion from fixed-point to integer. + Test if GCC warns when overflow or underflow. */ + +signed char sc; +unsigned char uc; + +void test() +{ + sc = 500k; /* { dg-warning "overflow in implicit constant conversion" } */ + sc = -500k; /* { dg-warning "overflow in implicit constant conversion" } */ + sc = 500lk; /* { dg-warning "overflow in implicit constant conversion" } */ + sc = -500lk; /* { dg-warning "overflow in implicit constant conversion" } */ + sc = 500llk; /* { dg-warning "overflow in implicit constant conversion" } */ + sc = -500llk; /* { dg-warning "overflow in implicit constant conversion" } */ + uc = 500k; /* { dg-warning "overflow in implicit constant conversion" } */ + uc = -500k; /* { dg-warning "overflow in implicit constant conversion" } */ + uc = 500lk; /* { dg-warning "overflow in implicit constant conversion" } */ + uc = -500lk; /* { dg-warning "overflow in implicit constant conversion" } */ + uc = 500llk; /* { dg-warning "overflow in implicit constant conversion" } */ + uc = -500llk; /* { dg-warning "overflow in implicit constant conversion" } */ +} |