*ping* Re: [PATCH] PR fortran/89100 Default widths for i, f and g format specifiers in format strings
Mark Eggleston
mark.eggleston@codethink.co.uk
Thu May 23 13:54:00 GMT 2019
On 23/05/2019 11:38, Christophe Lyon wrote:
> On Wed, 22 May 2019 at 13:57, Janne Blomqvist <blomqvist.janne@gmail.com> wrote:
>> On Wed, May 22, 2019 at 10:58 AM Mark Eggleston
>> <mark.eggleston@codethink.co.uk> wrote:
>>> On 13/05/2019 10:45, Mark Eggleston wrote:
>>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89100 see comment 4
>>>>
>>>> Please can someone commit the attached patch as I do not have commit
>>>> rights.
>>>>
>>>> Change logs:
>>>>
>>>> For gcc/fortran
>>>>
>>>> Jeff Law <law@redhat.com>
>>>> Mark Eggleston <mark.eggleston@codethink.com>
>>>>
>>>> PR fortran/89100
>>>> * gfortran.texi: Add Default widths for F, G and I format descriptors
>>>> to Extensions section.
>>>> * invoke.texi: Add -fdec-format-defaults
>>>> * io.c (check_format): Use default widths for i, f and g when
>>>> flag_dec_format_defaults is enabled.
>>>> * lang.opt: Add new option.
>>>> * options.c (set_dec_flags): Add SET_BITFLAG for
>>>> flag_dec_format_defaults.
>>>>
>>>> For gcc/testsuite
>>>>
>>>> Mark Eggleston <mark.eggleston@codethink.com>
>>>>
>>>> PR fortran/89100
>>>> * gfortran.dg/fmt_f_default_field_width_1.f90: New test.
>>>> * gfortran.dg/fmt_f_default_field_width_2.f90: New test.
>>>> * gfortran.dg/fmt_f_default_field_width_3.f90: New test.
>>>> * gfortran.dg/fmt_g_default_field_width_1.f90: New test.
>>>> * gfortran.dg/fmt_g_default_field_width_2.f90: New test.
>>>> * gfortran.dg/fmt_g_default_field_width_3.f90: New test.
>>>> * gfortran.dg/fmt_i_default_field_width_1.f90: New test.
>>>> * gfortran.dg/fmt_i_default_field_width_2.f90: New test.
>>>> * gfortran.dg/fmt_i_default_field_width_3.f90: New test.
>>>>
>>>> For libgfortran
>>>>
>>>> Jeff Law <law@redhat.com>
>>>>
>>>> PR fortran/89100
>>>> * io/format.c (parse_format_list): set default width when the
>>>> IOPARM_DT_DEC_EXT flag is set for i, f and g.
>>>> * io/io.h: add default_width_for_integer, default_width_for_float
>>>> and default_precision_for_float.
>>>> * io/write.c (write_boz): extra parameter giving length of data
>>>> corresponding to the type's kind.
>>>> (write_b): pass data length as extra parameter in calls to write_boz.
>>>> (write_o): pass data length as extra parameter in calls to write_boz.
>>>> (write_z): pass data length as extra parameter in calls to write_boz.
>>>> (size_from_kind): also set size is default width is set.
>>>> * io/write_float.def (build_float_string): new paramter inserted
>>>> before
>>>> result parameter. If default width use values passed instead of the
>>>> values in fnode.
>>>> (FORMAT_FLOAT): macro modified to check for default width and
>>>> calls to
>>>> build_float_string to pass in default width.
>>>> (get_float_string): set width and precision to defaults when needed.
>>>>
>>>>
>>> ping?
>>
>> Committed as r271511.
>>
> Hi,
>
> I've noticed new failures on arm:
> gfortran.dg/fmt_f_default_field_width_1.f90 -O0 (test for excess errors)
> gfortran.dg/fmt_f_default_field_width_1.f90 -O1 (test for excess errors)
> gfortran.dg/fmt_f_default_field_width_1.f90 -O2 (test for excess errors)
> gfortran.dg/fmt_f_default_field_width_1.f90 -O3
> -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer
> -finline-functions (test for excess errors)
> gfortran.dg/fmt_f_default_field_width_1.f90 -O3 -g (test for
> excess errors)
> gfortran.dg/fmt_f_default_field_width_1.f90 -Os (test for excess errors)
> gfortran.dg/fmt_f_default_field_width_2.f90 -O0 (test for excess errors)
> gfortran.dg/fmt_f_default_field_width_2.f90 -O1 (test for excess errors)
> gfortran.dg/fmt_f_default_field_width_2.f90 -O2 (test for excess errors)
> gfortran.dg/fmt_f_default_field_width_2.f90 -O3
> -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer
> -finline-functions (test for excess errors)
> gfortran.dg/fmt_f_default_field_width_2.f90 -O3 -g (test for
> excess errors)
> gfortran.dg/fmt_f_default_field_width_2.f90 -Os (test for excess errors)
> gfortran.dg/fmt_f_default_field_width_3.f90 -O (test for excess errors)
> gfortran.dg/fmt_g_default_field_width_1.f90 -O0 (test for excess errors)
> gfortran.dg/fmt_g_default_field_width_1.f90 -O1 (test for excess errors)
> gfortran.dg/fmt_g_default_field_width_1.f90 -O2 (test for excess errors)
> gfortran.dg/fmt_g_default_field_width_1.f90 -O3
> -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer
> -finline-functions (test for excess errors)
> gfortran.dg/fmt_g_default_field_width_1.f90 -O3 -g (test for
> excess errors)
> gfortran.dg/fmt_g_default_field_width_1.f90 -Os (test for excess errors)
> gfortran.dg/fmt_g_default_field_width_2.f90 -O0 (test for excess errors)
> gfortran.dg/fmt_g_default_field_width_2.f90 -O1 (test for excess errors)
> gfortran.dg/fmt_g_default_field_width_2.f90 -O2 (test for excess errors)
> gfortran.dg/fmt_g_default_field_width_2.f90 -O3
> -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer
> -finline-functions (test for excess errors)
> gfortran.dg/fmt_g_default_field_width_2.f90 -O3 -g (test for
> excess errors)
> gfortran.dg/fmt_g_default_field_width_2.f90 -Os (test for excess errors)
> gfortran.dg/fmt_g_default_field_width_3.f90 -O (test for excess errors)
>
>
> The logs contain:
> /gcc/testsuite/gfortran.dg/fmt_f_default_field_width_1.f90:15:11:
> Error: Kind 16 not supported for type REAL at (1)
>
> Christophe
Apologies, I'd forgotten that kind=16 is not always defined. The
attached patch modifies the test cases to take this into account. I
currently have no means of verifying this.
Please confirm that this patch solves the problem.
Mark
>> --
>> Janne Blomqvist
--
https://www.codethink.co.uk/privacy.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Correct-test-cases-for-default-fields-where-kind-16-.patch
Type: text/x-patch
Size: 6872 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20190523/439e7eef/attachment.bin>
More information about the Gcc-patches
mailing list