aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/fixed-point/int-warning.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/fixed-point/int-warning.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/fixed-point/int-warning.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/fixed-point/int-warning.c b/gcc-4.9/gcc/testsuite/gcc.dg/fixed-point/int-warning.c
new file mode 100644
index 000000000..cf48e4ba2
--- /dev/null
+++ b/gcc-4.9/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" } */
+}