aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/overflow-warn-4.c
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2017-05-24 22:07:21 +0000
committerMartin Sebor <msebor@gcc.gnu.org>2017-05-24 16:07:21 -0600
commit3cd211af9989ca33f08c9d9d7c29ba7cb208b645 (patch)
tree65c34bbc585e40c4958be3f1fc9ddbc5624dd312 /gcc/testsuite/gcc.dg/overflow-warn-4.c
parent1ab4db9379e5096a04c4c68b9edfef9c938cf3b5 (diff)
downloadgcc-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.c16
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);