diff options
Diffstat (limited to 'gcc/testsuite')
| -rw-r--r-- | gcc/testsuite/ChangeLog | 14 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.dg/Wconversion-negative-constants.c | 54 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.dg/Wtraditional-conversion-2.c (renamed from gcc/testsuite/gcc.dg/Wconversion-2.c) | 4 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.dg/Wtraditional-conversion.c (renamed from gcc/testsuite/gcc.dg/Wconversion.c) | 2 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.dg/builtin-protos-1.c | 2 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.dg/dfp/Wtraditional-conversion-2.c (renamed from gcc/testsuite/gcc.dg/dfp/Wconversion-2.c) | 6 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.dg/overflow-warn-2.c | 44 |
7 files changed, 98 insertions, 28 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3fc471e..d78a3e5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,17 @@ +2006-11-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR c/9072 + * gcc.dg/builtin-protos-1.c: Replace Wconversion by + Wtraditional-conversion. + * gcc.dg/overflow-warn-2.c: Likewise. + * gcc.dg/Wconversion.c: Likewise. Renamed as + Wtraditional-conversion.c . + * gcc.dg/Wconversion-2.c: Likewise. Renamed as + Wtraditional-conversion-2.c . + * gcc.dg/dfp/Wconversion-2.c: Likewise. Renamed as + Wtraditional-conversion-2.c + * gcc.dg/Wconversion-negative-constants.c: New. + 2006-11-23 Andrew Pinski <pinskia@gmail.com> * gcc.dg/tree-ssa/dump-1.c: New test. diff --git a/gcc/testsuite/gcc.dg/Wconversion-negative-constants.c b/gcc/testsuite/gcc.dg/Wconversion-negative-constants.c new file mode 100644 index 0000000..80ef410 --- /dev/null +++ b/gcc/testsuite/gcc.dg/Wconversion-negative-constants.c @@ -0,0 +1,54 @@ +/* Test for diagnostics for negative constants converted to unsigned types. + These tests come from gcc/testsuite/gcc.dg/overflow-warn-2.c */ + +/* { dg-do compile } */ +/* { dg-options "-std=c99 -Wconversion" } */ + +#include <limits.h> + +void fuc (unsigned char); + +void hc (int x) +{ + unsigned char uc; + + fuc (-1); /* { dg-warning "negative integer implicitly converted to unsigned type" } */ + uc = -1; /* { dg-warning "negative integer implicitly converted to unsigned type" } */ + uc = x ? 1U : -1; /* { dg-warning "negative integer implicitly converted to unsigned type" } */ + uc = x ? SCHAR_MIN : 1U; /* { dg-warning "negative integer implicitly converted to unsigned type" } */ + uc = '\xa0'; /* { dg-warning "negative integer implicitly converted to unsigned type" } */ + + fuc('A'); + uc = 'A'; + + uc = x ? 1 : -1; + + uc = x ? SCHAR_MIN : 1; +} + +unsigned fui (unsigned int ui); + +void hi (int x) +{ + unsigned ui; + + fui (-1); /* { dg-warning "negative integer implicitly converted to unsigned type" } */ + ui = -1; /* { dg-warning "negative integer implicitly converted to unsigned type" } */ + ui = x ? 1U : -1; /* { dg-warning "negative integer implicitly converted to unsigned type" } */ + ui = x ? INT_MIN : 1U; /* { dg-warning "negative integer implicitly converted to unsigned type" } */ + ui = ui ? SCHAR_MIN : 1U; /* { dg-warning "negative integer implicitly converted to unsigned type" } */ + ui = 1U * -1; /* { dg-warning "negative integer implicitly converted to unsigned type" } */ + ui = ui + INT_MIN; /* { dg-warning "negative integer implicitly converted to unsigned type" } */ + + ui = -1 * (1 * -1); + ui = (unsigned) -1; + + ui = x ? 1 : -1; + + ui = x ? INT_MIN : 1; + + ui = ui ? SCHAR_MIN : 1; +} + + +unsigned fui(unsigned a) { return a + -1; } /* { dg-warning "negative integer implicitly converted to unsigned type" } */ diff --git a/gcc/testsuite/gcc.dg/Wconversion-2.c b/gcc/testsuite/gcc.dg/Wtraditional-conversion-2.c index 320f41f..60f0f64 100644 --- a/gcc/testsuite/gcc.dg/Wconversion-2.c +++ b/gcc/testsuite/gcc.dg/Wtraditional-conversion-2.c @@ -1,8 +1,8 @@ -/* Test messages for -Wconversion, including that they are not +/* Test messages for -Wtraditional-conversion, including that they are not pedwarns. */ /* Origin: Joseph Myers <jsm@polyomino.org.uk> */ /* { dg-do compile } */ -/* { dg-options "-std=c99 -pedantic-errors -Wconversion" } */ +/* { dg-options "-std=c99 -pedantic-errors -Wtraditional-conversion" } */ void fsc(signed char); void fsi(signed int); diff --git a/gcc/testsuite/gcc.dg/Wconversion.c b/gcc/testsuite/gcc.dg/Wtraditional-conversion.c index 7cbcb6a..a3f04ac 100644 --- a/gcc/testsuite/gcc.dg/Wconversion.c +++ b/gcc/testsuite/gcc.dg/Wtraditional-conversion.c @@ -5,7 +5,7 @@ not used in the appropriate place in the warning code. */ /* { dg-do compile } */ -/* { dg-options -Wconversion } */ +/* { dg-options -Wtraditional-conversion } */ typedef enum { a } __attribute__((packed)) t; void f(t x) {} diff --git a/gcc/testsuite/gcc.dg/builtin-protos-1.c b/gcc/testsuite/gcc.dg/builtin-protos-1.c index c3cdc53..85f96cf 100644 --- a/gcc/testsuite/gcc.dg/builtin-protos-1.c +++ b/gcc/testsuite/gcc.dg/builtin-protos-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options -Wconversion } */ +/* { dg-options -Wtraditional-conversion } */ int test_s (signed int x) diff --git a/gcc/testsuite/gcc.dg/dfp/Wconversion-2.c b/gcc/testsuite/gcc.dg/dfp/Wtraditional-conversion-2.c index afc0b4d..b5738c9 100644 --- a/gcc/testsuite/gcc.dg/dfp/Wconversion-2.c +++ b/gcc/testsuite/gcc.dg/dfp/Wtraditional-conversion-2.c @@ -1,6 +1,8 @@ -/* Test messages for -Wconversion (based on gcc.dg/Wconversion-2.c). */ +/* Test messages for -Wtraditional-conversion + (based on gcc.dg/Wtraditional-conversion-2.c). */ + /* { dg-do compile } */ -/* { dg-options "-std=gnu99 -Wconversion" } */ +/* { dg-options "-std=gnu99 -Wtraditional-conversion" } */ void fsi(signed int); void fd32(_Decimal32); diff --git a/gcc/testsuite/gcc.dg/overflow-warn-2.c b/gcc/testsuite/gcc.dg/overflow-warn-2.c index 189f727..3fa75b6 100644 --- a/gcc/testsuite/gcc.dg/overflow-warn-2.c +++ b/gcc/testsuite/gcc.dg/overflow-warn-2.c @@ -1,7 +1,7 @@ -/* Test for diagnostics for constant overflow. Test with -Wconversion. */ +/* Test for diagnostics for constant overflow. Test with -Wtraditional-conversion. */ /* Origin: Joseph Myers <joseph@codesourcery.com> */ /* { dg-do compile } */ -/* { dg-options "-std=c99 -Wconversion" } */ +/* { dg-options "-std=c99 -Wtraditional-conversion" } */ #include <limits.h> @@ -82,23 +82,23 @@ void h2 (void) { fsc (SCHAR_MAX + 1); - /* { dg-warning "warning: passing argument 1 of 'fsc' with different width due to prototype" "-Wconversion" { target *-*-* } 84 } */ + /* { dg-warning "warning: passing argument 1 of 'fsc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 84 } */ fsc (SCHAR_MIN - 1); /* { dg-warning "warning: overflow in implicit constant conversion" } */ - /* { dg-warning "warning: passing argument 1 of 'fsc' with different width due to prototype" "-Wconversion" { target *-*-* } 86 } */ + /* { dg-warning "warning: passing argument 1 of 'fsc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 86 } */ fsc (UCHAR_MAX); - /* { dg-warning "warning: passing argument 1 of 'fsc' with different width due to prototype" "-Wconversion" { target *-*-* } 88 } */ + /* { dg-warning "warning: passing argument 1 of 'fsc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 88 } */ fsc (UCHAR_MAX + 1); /* { dg-warning "warning: overflow in implicit constant conversion" } */ - /* { dg-warning "warning: passing argument 1 of 'fsc' with different width due to prototype" "-Wconversion" { target *-*-* } 90 } */ - fuc (-1); /* { dg-warning "warning: negative integer implicitly converted to unsigned type" } */ - /* { dg-warning "warning: passing argument 1 of 'fuc' with different width due to prototype" "-Wconversion" { target *-*-* } 92 } */ + /* { dg-warning "warning: passing argument 1 of 'fsc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 90 } */ + fuc (-1); + /* { dg-warning "warning: passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 92 } */ fuc (UCHAR_MAX + 1); /* { dg-warning "warning: large integer implicitly truncated to unsigned type" } */ - /* { dg-warning "warning: passing argument 1 of 'fuc' with different width due to prototype" "-Wconversion" { target *-*-* } 94 } */ - fuc (SCHAR_MIN); /* { dg-warning "warning: negative integer implicitly converted to unsigned type" } */ - /* { dg-warning "warning: passing argument 1 of 'fuc' with different width due to prototype" "-Wconversion" { target *-*-* } 96 } */ + /* { dg-warning "warning: passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 94 } */ + fuc (SCHAR_MIN); + /* { dg-warning "warning: passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 96 } */ fuc (SCHAR_MIN - 1); /* { dg-warning "warning: large integer implicitly truncated to unsigned type" } */ - /* { dg-warning "warning: passing argument 1 of 'fuc' with different width due to prototype" "-Wconversion" { target *-*-* } 98 } */ + /* { dg-warning "warning: passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 98 } */ fuc (-UCHAR_MAX); /* { dg-warning "warning: large integer implicitly truncated to unsigned type" } */ - /* { dg-warning "warning: passing argument 1 of 'fuc' with different width due to prototype" "-Wconversion" { target *-*-* } 100 } */ + /* { dg-warning "warning: passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 100 } */ } void fui (unsigned int); @@ -111,7 +111,7 @@ void h2i (int x) { /* For some reason, we only give certain warnings for implicit - conversions among values of the same precision with -Wconversion, + conversions among values of the same precision with -Wtraditional-conversion, while we don't give others at all. */ fsi ((unsigned)INT_MAX + 1); /* { dg-warning "warning: passing argument 1 of 'fsi' as signed due to prototype" } */ si = (unsigned)INT_MAX + 1; @@ -121,12 +121,12 @@ h2i (int x) si = x ? (unsigned)INT_MAX + 2 : 1; fsi (UINT_MAX); /* { dg-warning "warning: passing argument 1 of 'fsi' as signed due to prototype" } */ si = UINT_MAX; - fui (-1); /* { dg-warning "warning: negative integer implicitly converted to unsigned type" } */ - /* { dg-warning "warning: passing argument 1 of 'fui' as unsigned due to prototype" "-Wconversion" { target *-*-* } 124 } */ - ui = -1; /* { dg-warning "warning: negative integer implicitly converted to unsigned type" } */ - ui = x ? -1 : 1U; /* { dg-warning "warning: negative integer implicitly converted to unsigned type" } */ - fui (INT_MIN); /* { dg-warning "warning: negative integer implicitly converted to unsigned type" } */ - /* { dg-warning "warning: passing argument 1 of 'fui' as unsigned due to prototype" "-Wconversion" { target *-*-* } 128 } */ - ui = INT_MIN; /* { dg-warning "warning: negative integer implicitly converted to unsigned type" } */ - ui = x ? INT_MIN : 1U; /* { dg-warning "warning: negative integer implicitly converted to unsigned type" } */ + fui (-1); + /* { dg-warning "warning: passing argument 1 of 'fui' as unsigned due to prototype" "-Wtraditional-conversion" { target *-*-* } 124 } */ + ui = -1; + ui = x ? -1 : 1U; + fui (INT_MIN); + /* { dg-warning "warning: passing argument 1 of 'fui' as unsigned due to prototype" "-Wtraditional-conversion" { target *-*-* } 128 } */ + ui = INT_MIN; + ui = x ? INT_MIN : 1U; } |
