aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-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