aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2017-06-03 02:49:30 +0000
committerMartin Sebor <msebor@gcc.gnu.org>2017-06-02 20:49:30 -0600
commit2474f48f738cbbdce18f4ded7afd7e57d8b1dcc4 (patch)
treea3a46121603c496504491df0fda878bcecbd79af
parenteb64690cd5bb23ba47259cf29c20ce89031796d3 (diff)
downloadgcc-2474f48f738cbbdce18f4ded7afd7e57d8b1dcc4.zip
gcc-2474f48f738cbbdce18f4ded7afd7e57d8b1dcc4.tar.gz
gcc-2474f48f738cbbdce18f4ded7afd7e57d8b1dcc4.tar.bz2
PR c/80892 - -Wfloat-conversion now warns about non-floats
gcc/c-family/ChangeLog: PR c/80892 * c-warn.c (conversion_warning): Use -Wconversion for integer conversion and -Wfloat-conversion for floating one. gcc/testsuite/ChangeLog: PR c/80892 * c-c++-common/Wfloat-conversion-2.c: New test. From-SVN: r248852
-rw-r--r--gcc/c-family/ChangeLog6
-rw-r--r--gcc/c-family/c-warn.c17
-rw-r--r--gcc/testsuite/ChangeLog5
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