PR 84615 Regressions due to type mismatch with character functions
commit983d49ddd14395075e2169bba158a5bb8193d29e
authorJanne Blomqvist <jb@gcc.gnu.org>
Wed, 21 Mar 2018 18:46:44 +0000 (21 20:46 +0200)
committerJanne Blomqvist <jb@gcc.gnu.org>
Wed, 21 Mar 2018 18:46:44 +0000 (21 20:46 +0200)
tree9237e503aac33b16a9206822adb2413c0e98e3ab
parent5afef8b119ac69393900a8be42cc6b69ad0bcbd0
PR 84615 Regressions due to type mismatch with character functions

Since the kind of the hidden character length variable is not part of
the character variable definition, we must ensure that character
lengths are always of the same kind in interfaces, regardless of how
they were declared in the source. This patch ensures this when calling
a procedure.

Regtested on x86_64-pc-linux-gnu and i686-pc-linux-gnu.

gcc/fortran/ChangeLog:

2018-03-21  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/84615
* trans-expr.c (gfc_conv_procedure_call): Convert charlen to
gfc_charlen_type_node when calling procedure.

gcc/testsuite/ChangeLog:

2018-03-21  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/84615
* gfortran.dg/char_result_17.f90: New test.

From-SVN: r258736
gcc/fortran/ChangeLog
gcc/fortran/trans-expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/char_result_17.f90 [new file with mode: 0644]