summaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common
diff options
context:
space:
mode:
authormanu <manu@138bc75d-0d04-0410-961f-82ee72b054a4>2010-02-19 21:12:09 +0000
committermanu <manu@138bc75d-0d04-0410-961f-82ee72b054a4>2010-02-19 21:12:09 +0000
commit4c2cfa8125c9a53b563d4d50c7fe83c2167e73fa (patch)
treea8b8399751e464e4ec4287a9c9a0996327cc76f4 /gcc/testsuite/c-c++-common
parent83a23b050c3e304cdbfe91ddcad06d3a20aff63f (diff)
downloadgcc-4c2cfa8125c9a53b563d4d50c7fe83c2167e73fa.tar.gz
2010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR 41779 * c-common.c (conversion_warning): Remove widening conversions before checking the conversion of integers to reals. testsuite/ * c-c++-common/pr41779.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@156911 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/c-c++-common')
-rw-r--r--gcc/testsuite/c-c++-common/pr41779.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/c-c++-common/pr41779.c b/gcc/testsuite/c-c++-common/pr41779.c
new file mode 100644
index 00000000000..f7153d9299e
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/pr41779.c
@@ -0,0 +1,31 @@
+/* PR41779: Wconversion cannot see throught real*integer promotions. */
+/* { dg-do compile } */
+/* { dg-skip-if "doubles are floats" { "avr-*-*" } { "*" } { "" } } */
+/* { dg-options "-std=c99 -Wconversion" { target c } } */
+/* { dg-options "-Wconversion" { target c++ } } */
+/* { dg-require-effective-target large_double } */
+
+float f(float x, unsigned short y)
+{
+ return x * y;
+}
+
+float f(float x, short y)
+{
+ return x * y;
+}
+
+float f(float x, char y)
+{
+ return x * y;
+}
+
+float f(float x, unsigned char y)
+{
+ return x * y;
+}
+
+float f(float x, int y)
+{
+ return x * y; /* { dg-warning "conversion" } */
+}