diff options
author | Martin Sebor <msebor@redhat.com> | 2017-05-24 22:07:21 +0000 |
---|---|---|
committer | Martin Sebor <msebor@gcc.gnu.org> | 2017-05-24 16:07:21 -0600 |
commit | 3cd211af9989ca33f08c9d9d7c29ba7cb208b645 (patch) | |
tree | 65c34bbc585e40c4958be3f1fc9ddbc5624dd312 /gcc/testsuite/gcc.dg/overflow-warn-4.c | |
parent | 1ab4db9379e5096a04c4c68b9edfef9c938cf3b5 (diff) | |
download | gcc-3cd211af9989ca33f08c9d9d7c29ba7cb208b645.zip gcc-3cd211af9989ca33f08c9d9d7c29ba7cb208b645.tar.gz gcc-3cd211af9989ca33f08c9d9d7c29ba7cb208b645.tar.bz2 |
PR c/80731 - poor -Woverflow warnings
gcc/c-family/ChangeLog:
PR c/80731
* c-common.h (unsafe_conversion_p): Add a function argument.
* c-common.c (unsafe_conversion_p): Same.
Add type names and values to diagnostics.
(scalar_to_vector): Adjust.
* c-warn.c (constant_expression_error): Add a function argument.
Add type names and values to diagnostics.
(conversion_warning): Add a function argument.
Add type names and values to diagnostics.
(warnings_for_convert_and_check): Same.
gcc/c/ChangeLog:
PR c/80731
* c-fold.c (c_fully_fold_internal): Adjust.
* c-typeck.c (parser_build_unary_op): Adjust.
gcc/cp/ChangeLog:
PR c/80731
* call.c (fully_fold_internal): Adjust.
gcc/testsuite/ChangeLog:
PR c/80731
* c-c++-common/Wfloat-conversion.c: Adjust.
* c-c++-common/dfp/convert-int-saturate.c: Same.
* c-c++-common/pr68657-1.c: Same.
* g++.dg/ext/utf-cvt.C: Same.
* g++.dg/ext/utf16-4.C: Same.
* g++.dg/warn/Wconversion-real-integer-3.C: Same.
* g++.dg/warn/Wconversion-real-integer2.C: Same.
* g++.dg/warn/Wconversion3.C: Same.
* g++.dg/warn/Wconversion4.C: Same.
* g++.dg/warn/Wsign-conversion.C: Same.
* g++.dg/warn/overflow-warn-1.C: Same.
* g++.dg/warn/overflow-warn-3.C: Same.
* g++.dg/warn/overflow-warn-4.C: Same.
* g++.dg/warn/pr35635.C: Same.
* g++.old-deja/g++.mike/enum1.C: Same.
* gcc.dg/Wconversion-3.c: Same.
* gcc.dg/Wconversion-5.c: Same.
* gcc.dg/Wconversion-complex-c99.c: Same.
* gcc.dg/Wconversion-complex-gnu.c: Same.
* gcc.dg/Wconversion-integer.c: Same.
* gcc.dg/Wsign-conversion.c: Same.
* gcc.dg/bitfld-2.c: Same.
* gcc.dg/c90-const-expr-11.c: Same.
* gcc.dg/c90-const-expr-7.c: Same.
* gcc.dg/c99-const-expr-7.c: Same.
* gcc.dg/overflow-warn-1.c: Same.
* gcc.dg/overflow-warn-2.c: Same.
* gcc.dg/overflow-warn-3.c: Same.
* gcc.dg/overflow-warn-4.c: Same.
* gcc.dg/overflow-warn-5.c: Same.
* gcc.dg/overflow-warn-8.c: Same.
* gcc.dg/overflow-warn-9.c: New test.
* gcc.dg/pr35635.c: Adjust.
* gcc.dg/pr59940.c: Same.
* gcc.dg/pr59963-2.c: Same.
* gcc.dg/pr60114.c: Same.
* gcc.dg/switch-warn-2.c: Same.
* gcc.dg/utf-cvt.c: Same.
* gcc.dg/utf16-4.c: Same.
From-SVN: r248431
Diffstat (limited to 'gcc/testsuite/gcc.dg/overflow-warn-4.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/overflow-warn-4.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/testsuite/gcc.dg/overflow-warn-4.c b/gcc/testsuite/gcc.dg/overflow-warn-4.c index a28cb56..52677ce 100644 --- a/gcc/testsuite/gcc.dg/overflow-warn-4.c +++ b/gcc/testsuite/gcc.dg/overflow-warn-4.c @@ -21,7 +21,7 @@ enum e { E5 = INT_MAX + 1, /* { dg-warning "integer overflow in expression" } */ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */ /* Again, overflow in evaluated subexpression. */ - E6 = 0 * (INT_MAX + 1), /* { dg-warning "integer overflow in expression" } */ + E6 = 0 * (INT_MAX + 1), /* { dg-warning "integer overflow in expression of type .int. results in .-\[0-9\]+." } */ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */ /* A cast does not constitute overflow in conversion. */ E7 = (char) INT_MAX @@ -91,15 +91,15 @@ void fsc (signed char); void h2 (void) { - fsc (SCHAR_MAX + 1); /* { dg-warning "overflow in implicit constant conversion" } */ - fsc (SCHAR_MIN - 1); /* { dg-warning "overflow in implicit constant conversion" } */ - fsc (UCHAR_MAX); /* { dg-warning "overflow in implicit constant conversion" } */ - fsc (UCHAR_MAX + 1); /* { dg-warning "overflow in implicit constant conversion" } */ + fsc (SCHAR_MAX + 1); /* { dg-warning "overflow in conversion from .int. to .signed char. changes value" } */ + fsc (SCHAR_MIN - 1); /* { dg-warning "overflow in conversion" } */ + fsc (UCHAR_MAX); /* { dg-warning "overflow in conversion" } */ + fsc (UCHAR_MAX + 1); /* { dg-warning "overflow in conversion" } */ fuc (-1); - fuc (UCHAR_MAX + 1); /* { dg-warning "large integer implicitly truncated to unsigned type" } */ + fuc (UCHAR_MAX + 1); /* { dg-warning "unsigned conversion from .int. to .unsigned char. changes value" } */ fuc (SCHAR_MIN); - fuc (SCHAR_MIN - 1); /* { dg-warning "large integer implicitly truncated to unsigned type" } */ - fuc (-UCHAR_MAX); /* { dg-warning "large integer implicitly truncated to unsigned type" } */ + fuc (SCHAR_MIN - 1); /* { dg-warning "unsigned conversion" } */ + fuc (-UCHAR_MAX); /* { dg-warning "unsigned conversion" } */ } void fui (unsigned int); |