[Bug fortran/78534] Use a larger integer type for character lengths on 64-bit targets
jb at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Nov 26 08:19:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78534
Janne Blomqvist <jb at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |jb at gcc dot gnu.org
--- Comment #3 from Janne Blomqvist <jb at gcc dot gnu.org> ---
(In reply to Jerry DeLisle from comment #1)
> (In reply to Janne Blomqvist from comment #0)
> > Currently GFortran uses a plain C int for character lengths. This prevents
> > longer characters on 64-bit targets. We should change to use size_t instead,
> > similar to the C string functions (str*(), mem*()), malloc(), etc. Also
> > Intel Fortran does this nowadays.
> >
> > Now that the libgfortran ABI version has been bumped, it is the right time
> > to do this.
> >
> > See also https://gcc.gnu.org/wiki/LibgfortranAbiCleanup
>
> Agree, Are you going to do this?
I'm working on a patch. I have managed to make it work except for the
char_result_8.f90 testcase, which fails with an internal compiler error in the
middle end when optimization is enabled. So it seems I'm passing the middle-end
some nonsensical data.
Also the patch so far changes the charlen type to ptrdiff_t, there are some
places in the frontend where we use a negative charlen as a flag value. I
though I'd get the size change working first before tackling the
signed->unsigned change.
More information about the Gcc-bugs
mailing list