diff options
| -rw-r--r-- | gcc/c-family/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/c-family/c-warn.c | 17 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 |
3 files changed, 24 insertions, 4 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 0d54c90..569b456 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,9 @@ +2017-06-02 Martin Sebor <msebor@redhat.com> + + PR c/80892 + * c-warn.c (conversion_warning): Use -Wconversion for integer + conversion and -Wfloat-conversion for floating one. + 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de> * c.opt (Wsizeof-pointer-div): New warning option. diff --git a/gcc/c-family/c-warn.c b/gcc/c-family/c-warn.c index 012675b..35321a6 100644 --- a/gcc/c-family/c-warn.c +++ b/gcc/c-family/c-warn.c @@ -1043,10 +1043,19 @@ conversion_warning (location_t loc, tree type, tree expr, tree result) "conversion from %qT to to %qT discards imaginary " "component", expr_type, type); - else if (conversion_kind == UNSAFE_REAL || conversion_kind) - warning_at (loc, OPT_Wfloat_conversion, - "conversion from %qT to %qT may change value", - expr_type, type); + else + { + int warnopt; + if (conversion_kind == UNSAFE_REAL) + warnopt = OPT_Wfloat_conversion; + else if (conversion_kind) + warnopt = OPT_Wconversion; + else + break; + warning_at (loc, warnopt, + "conversion from %qT to %qT may change value", + expr_type, type); + } } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d150f86..537e642 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-06-02 Martin Sebor <msebor@redhat.com> + + PR c/80892 + * c-c++-common/Wfloat-conversion-2.c: New test. + 2017-06-02 Paolo Carlini <paolo.carlini@oracle.com> PR c++/68754 |
