aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsebor <msebor@138bc75d-0d04-0410-961f-82ee72b054a4>2017-06-03 02:49:30 +0000
committermsebor <msebor@138bc75d-0d04-0410-961f-82ee72b054a4>2017-06-03 02:49:30 +0000
commita977cac903294f19fd8c072804ac23ef123a8d2d (patch)
treea3a46121603c496504491df0fda878bcecbd79af
parentc37584b8d9b8a742273695b0e029e492323b7a60 (diff)
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248852 138bc75d-0d04-0410-961f-82ee72b054a4
-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 0d54c903d6e..569b456a724 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 012675bf6e9..35321a6cb1b 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 d150f8686ee..537e6422d22 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