https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87851
Bug ID: 87851
Summary: [8/9 Regression] Wrong return type for len_trim
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: tkoenig at gcc dot gnu.org
Target Milestone: ---
Looking at PR 87711, it struck me that we have a type mismatch
between the library version of len_trim and what the compiler
generates.
The library side has, in string_intrinsics_inc.c,
/* The length of a string not including trailing blanks. */
gfc_charlen_type
string_len_trim (gfc_charlen_type len, const CHARTYPE *s)
and the compiler generates for
program main
character(len=3) :: c
c = 'a '
print *,len_trim(c)
end program main
_gfortran_st_write (&dt_parm.0);
{
integer(kind=4) D.3818;
D.3818 = (integer(kind=4)) _gfortran_string_len_trim (3, &c);
_gfortran_transfer_integer_write (&dt_parm.0, &D.3818, 4);
}
_gfortran_st_write_done (&dt_parm.0);
on a 64-bit system.