re PR fortran/54234 (-Wconversion or -Wconversion-extra should warn for CMPLX(dp,dp))
2012-08-14 Tobias Burnus <burnus@net-b.de> PR fortran/54234 * check.c (gfc_check_cmplx): Add -Wconversion warning when converting higher-precision REAL to default-precision CMPLX without kind= parameter. 2012-08-14 Tobias Burnus <burnus@net-b.de> PR fortran/54234 * gfortran.dg/warn_conversion_4.f90: New. From-SVN: r190378
This commit is contained in:
parent
343c5d461c
commit
2e60cfaa2b
@ -1,3 +1,10 @@
|
||||
2012-08-14 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/54234
|
||||
* check.c (gfc_check_cmplx): Add -Wconversion warning
|
||||
when converting higher-precision REAL to default-precision
|
||||
CMPLX without kind= parameter.
|
||||
|
||||
2012-08-12 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/54221
|
||||
|
@ -1278,6 +1278,17 @@ gfc_check_cmplx (gfc_expr *x, gfc_expr *y, gfc_expr *kind)
|
||||
if (kind_check (kind, 2, BT_COMPLEX) == FAILURE)
|
||||
return FAILURE;
|
||||
|
||||
if (!kind && gfc_option.gfc_warn_conversion
|
||||
&& x->ts.type == BT_REAL && x->ts.kind > gfc_default_real_kind)
|
||||
gfc_warning_now ("Conversion from %s to default-kind COMPLEX(%d) at %L "
|
||||
"might loose precision, consider using the KIND argument",
|
||||
gfc_typename (&x->ts), gfc_default_real_kind, &x->where);
|
||||
else if (y && !kind && gfc_option.gfc_warn_conversion
|
||||
&& y->ts.type == BT_REAL && y->ts.kind > gfc_default_real_kind)
|
||||
gfc_warning_now ("Conversion from %s to default-kind COMPLEX(%d) at %L "
|
||||
"might loose precision, consider using the KIND argument",
|
||||
gfc_typename (&y->ts), gfc_default_real_kind, &y->where);
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-08-14 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/54234
|
||||
* gfortran.dg/warn_conversion_4.f90: New.
|
||||
|
||||
2012-08-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/53411
|
||||
|
18
gcc/testsuite/gfortran.dg/warn_conversion_4.f90
Normal file
18
gcc/testsuite/gfortran.dg/warn_conversion_4.f90
Normal file
@ -0,0 +1,18 @@
|
||||
! { dg-do compile }
|
||||
! { dg-options "-Wconversion" }
|
||||
!
|
||||
! PR fortran/54234
|
||||
!
|
||||
!
|
||||
module fft_mod
|
||||
implicit none
|
||||
integer, parameter :: dp=kind(0.0d0)
|
||||
contains
|
||||
subroutine test
|
||||
integer :: x
|
||||
x = int (abs (cmplx(2.3,0.1)))
|
||||
x = int (abs (cmplx(2.3_dp,0.1))) ! { dg-warning "Conversion from REAL.8. to default-kind COMPLEX.4. at .1. might loose precision, consider using the KIND argument" }
|
||||
x = int (abs (cmplx(2.3,0.1_dp))) ! { dg-warning "Conversion from REAL.8. to default-kind COMPLEX.4. at .1. might loose precision, consider using the KIND argument" }
|
||||
x = int (abs (cmplx(2.3_dp,0.1_dp))) ! { dg-warning "Conversion from REAL.8. to default-kind COMPLEX.4. at .1. might loose precision, consider using the KIND argument" }
|
||||
end subroutine test
|
||||
end module fft_mod
|
Loading…
Reference in New Issue
Block a user