diff options
author | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2006-12-08 18:14:21 +0000 |
---|---|---|
committer | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2006-12-08 18:14:21 +0000 |
commit | 4efc447f98b3fb3ab60b79784e8f7ab88a8c7dc9 (patch) | |
tree | ee3fa624b17b5f89232793441d5b1e05030bbdfa /gcc | |
parent | fd13de777227fdcdb7aafaa97ca5def90755961d (diff) | |
download | gcc-4efc447f98b3fb3ab60b79784e8f7ab88a8c7dc9.zip gcc-4efc447f98b3fb3ab60b79784e8f7ab88a8c7dc9.tar.gz gcc-4efc447f98b3fb3ab60b79784e8f7ab88a8c7dc9.tar.bz2 |
2006-12-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* lib/target-supports.exp
(check_effective_target_large_long_double): New.
* gcc.dg/Wconversion-real.c : Use it.
* gcc.dg/Wconversion-integer.c : Fix for targets where char is
unsigned.
From-SVN: r119662
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/Wconversion-integer.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/Wconversion-real.c | 10 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 10 |
4 files changed, 24 insertions, 6 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c86dcd2..fe8632a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2006-12-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + * lib/target-supports.exp + (check_effective_target_large_long_double): New. + * gcc.dg/Wconversion-real.c : Use it. + * gcc.dg/Wconversion-integer.c : Fix for targets where char is + unsigned. + 2006-12-08 Mark Shinwell <shinwell@codesourcery.com> * gcc.c-torture/execute/mode-dependent-address.c: New test. diff --git a/gcc/testsuite/gcc.dg/Wconversion-integer.c b/gcc/testsuite/gcc.dg/Wconversion-integer.c index bab8062..515aba3 100644 --- a/gcc/testsuite/gcc.dg/Wconversion-integer.c +++ b/gcc/testsuite/gcc.dg/Wconversion-integer.c @@ -2,7 +2,7 @@ These tests come from gcc/testsuite/gcc.dg/overflow-warn-2.c */ /* { dg-do compile } */ -/* { dg-options "-std=c99 -Wconversion" } */ +/* { dg-options "-std=c99 -fsigned-char -Wconversion" } */ #include <limits.h> diff --git a/gcc/testsuite/gcc.dg/Wconversion-real.c b/gcc/testsuite/gcc.dg/Wconversion-real.c index 53ac9a7..877fcea 100644 --- a/gcc/testsuite/gcc.dg/Wconversion-real.c +++ b/gcc/testsuite/gcc.dg/Wconversion-real.c @@ -20,15 +20,15 @@ void h (void) ffloat (3.1); /* { dg-warning "conversion" } */ vfloat = 3.1; /* { dg-warning "conversion" } */ ffloat (3.1L); /* { dg-warning "conversion" } */ - vfloat = 3.1L; /* { dg-warning "conversion" } */ - fdouble (3.1L); /* { dg-warning "conversion" } */ - vdouble = 3.1L; /* { dg-warning "conversion" } */ + vfloat = 3.1L; /* { dg-warning "conversion" } */ + fdouble (3.1L); /* { dg-warning "conversion" "" { target large_long_double } } */ + vdouble = 3.1L; /* { dg-warning "conversion" "" { target large_long_double } } */ ffloat (vdouble); /* { dg-warning "conversion" } */ vfloat = vdouble; /* { dg-warning "conversion" } */ ffloat (vlongdouble); /* { dg-warning "conversion" } */ vfloat = vlongdouble; /* { dg-warning "conversion" } */ - fdouble (vlongdouble); /* { dg-warning "conversion" } */ - vdouble = vlongdouble; /* { dg-warning "conversion" } */ + fdouble (vlongdouble); /* { dg-warning "conversion" "" { target large_long_double } } */ + vdouble = vlongdouble; /* { dg-warning "conversion" "" { target large_long_double } } */ ffloat ((float) 3.1); diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 4dd0b8e..221d17d 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -1118,6 +1118,16 @@ proc check_effective_target_lp64 { } { }] } +# Return 1 if the target supports long double larger than double, +# 0 otherwise. + +proc check_effective_target_large_long_double { } { + return [check_no_compiler_messages large_long_double object { + int dummy[sizeof(long double) > sizeof(double) ? 1 : -1]; + }] +} + + # Return 1 if the target supports compiling decimal floating point, # 0 otherwise. |