aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2016-11-06 12:27:51 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2016-11-06 12:27:51 +0000
commit18bb8b8a2a67091517d60b7192e454ed11e9280d (patch)
tree05bf66bb3eb08f6d3411ce520737d709a4e4a723 /gcc
parent0ddd4af5f49b9cc6600ccb5adfa1f00f784709e2 (diff)
downloadgcc-18bb8b8a2a67091517d60b7192e454ed11e9280d.zip
gcc-18bb8b8a2a67091517d60b7192e454ed11e9280d.tar.gz
gcc-18bb8b8a2a67091517d60b7192e454ed11e9280d.tar.bz2
re PR fortran/78221 (bogus warning: Non-zero imaginary part discarded in conversion [-Wconversion])
2016-11-06 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/78221 * arith.c (gfc_complex2real): Change gfc_warning_now to gfc_warning. 2016-11-06 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/78221 * gfortran.dg/warn_conversion_9.f90: New test. From-SVN: r241884
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/arith.c8
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.dg/warn_conversion_9.f907
4 files changed, 23 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 41225b5..5c25988 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2016-11-06 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/78221
+ * arith.c (gfc_complex2real): Change gfc_warning_now to
+ gfc_warning.
+
2016-11-05 Paul Thomas <pault@gcc.gnu.org>
* check.c (gfc_check_move_alloc): Introduce error to prevent
diff --git a/gcc/fortran/arith.c b/gcc/fortran/arith.c
index d566faa..2781f10 100644
--- a/gcc/fortran/arith.c
+++ b/gcc/fortran/arith.c
@@ -2369,10 +2369,10 @@ gfc_complex2real (gfc_expr *src, int kind)
/* See if we discarded an imaginary part. */
if (mpfr_cmp_si (mpc_imagref (src->value.complex), 0) != 0)
{
- gfc_warning_now (w, "Non-zero imaginary part discarded "
- "in conversion from %qs to %qs at %L",
- gfc_typename(&src->ts), gfc_typename (&result->ts),
- &src->where);
+ gfc_warning (w, "Non-zero imaginary part discarded "
+ "in conversion from %qs to %qs at %L",
+ gfc_typename(&src->ts), gfc_typename (&result->ts),
+ &src->where);
did_warn = true;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 69af2ef..f6bdc41 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2016-11-06 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/78221
+ * arith.c (gfc_complex2real): Change gfc_warning_now to
+ gfc_warning.
+
2016-11-05 Paul Thomas <pault@gcc.gnu.org>
* gfortran.dg/move_alloc_17.f03: New test.
diff --git a/gcc/testsuite/gfortran.dg/warn_conversion_9.f90 b/gcc/testsuite/gfortran.dg/warn_conversion_9.f90
new file mode 100644
index 0000000..794eeef
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/warn_conversion_9.f90
@@ -0,0 +1,7 @@
+! { dg-do compile }
+! { dg-options "-Wconversion" }
+! PR 78221 - used to give a spurious warning
+complex, parameter :: i = (0.,1.)
+complex :: t
+t = (i)
+end