re PR fortran/54818 (error: type mismatch in binary expression)

2012-12-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54818
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ensure that
        the string length is of type gfc_charlen_type_node.

2012-12-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54818
        * gfortran.dg/transfer_intrinsic_4.f: New.

From-SVN: r194632
This commit is contained in:
Tobias Burnus 2012-12-20 11:48:11 +01:00 committed by Tobias Burnus
parent 04fead5504
commit bc2e423b2d
4 changed files with 39 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2012-12-20 Tobias Burnus <burnus@net-b.de>
PR fortran/54818
* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ensure that
the string length is of type gfc_charlen_type_node.
2012-11-24 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/55314

View File

@ -5659,7 +5659,7 @@ scalar_transfer:
gfc_add_expr_to_block (&se->pre, tmp);
se->expr = tmpdecl;
se->string_length = dest_word_len;
se->string_length = fold_convert (gfc_charlen_type_node, dest_word_len);
}
else
{

View File

@ -1,3 +1,8 @@
2012-12-20 Tobias Burnus <burnus@net-b.de>
PR fortran/54818
* gfortran.dg/transfer_intrinsic_4.f: New.
2012-12-18 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
Backport from mainline

View File

@ -0,0 +1,27 @@
! { dg-do compile }
!
! PR fortran/54818
!
! Contributed by Scott Pakin
!
subroutine broken ( name1, name2, bmix )
implicit none
integer, parameter :: i_knd = kind( 1 )
integer, parameter :: r_knd = selected_real_kind( 13 )
character(len=8) :: dum
character(len=8) :: blk
real(r_knd), dimension(*) :: bmix, name1, name2
integer(i_knd) :: j, idx1, n, i
integer(i_knd), external :: nafix
write (*, 99002) name1(j),
& ( adjustl(
& transfer(name2(nafix(bmix(idx1+i),1)),dum)//blk
& //blk), bmix(idx1+i+1), i = 1, n, 2 )
99002 format (' *', 10x, a8, 8x, 3(a24,1pe12.5,',',6x))
end subroutine broken