On 11/8/19 10:45 AM, Mark Eggleston wrote:
PING - OK, to commit? I have a pending patch that needs this in place.
Thanks for the ping. — Any chance, that you also work on some of the general issues once in a while (cf. Bugzilla remark below); e.g. one bug per week or fortnight? (Can be a simple one, just not to keep the number of bugs growing.)

@Anyone – side question: Are there other pending patches? Ignoring one OpenMP and several OpenACC patches, I am currently aware of: * [Needs review] José's PR92142 - CFI_setpointer corrupts descriptor patch [FSF copyright assignment exists] * [Nearly ready, but needs fixes/follow-up patch] Steve's PR91178 for code like 'call foo(a, (a))' * [Approved but not committed] Paul's PR92123 patch for bind(C) + alloc scalars.

Side remark: On the bind(C) side, I think PR 92189 should be fixed. Additionally, there are several recent reports on segfaults and regressions, looking Bugzilla (component = fortran, sort by change data).


Back to this pending patch:

On 11/5/19 10:55 AM, Mark Eggleston wrote:
I noticed that warning were not produced for conversion to logicals, re-ordering of an if..else if sequence fixes that problem. Additional test cases have been added.
Looks as if reviewing and revisiting the patch was worthwhile :-) Thanks!

Please find attached the updated patch, the change logs follow. OK to commit?

LGTM. Thanks for patch.

Cheers,

Tobias

PS: I still find it interesting, which Fortran code gets used; from a supercomputing centre, I heard that everything between afterwards-never-touched FORTRAN IV code to code using the latest Fortran features is used. (But most amazing I find code, which gets newly written in a FORTRAN 66 style/features with some sparse F20xx features in between – like the "publicx" example of recently [instead of 'public x' or 'public::x'; spaces aren't that expensive anymore].)


gcc/fortran/ChangeLog

    Jim MacArthur  <jim.macart...@codethink.co.uk>
    Mark Eggleston  <mark.eggles...@codethink.com>

    * arith.c (hollerith2representation): Use OPT_Wcharacter_truncation in     call to gfc_warning.  Add character2representation, gfc_character2int,
    gfc_character2real, gfc_character2complex and gfc_character2logical.
    * arith.h: Add prototypes for gfc_character2int, gfc_character2real,
    gfc_character2complex and gfc_character2logical.
    * expr.c (gfc_check_assign): Return true if left hand side is numeric
    or logical and the right hand side is character and of kind=1.
    * gfortran.texi: Add -fdec-char-conversions.
    * intrinsic.c (add_conversions): Add conversions from character to
    integer, real, complex and logical types for their supported kinds.
    (gfc_convert_type_warn): Reorder if..else if.. sequence so that warnings
    are produced for conversion to logical.
    * invoke.texi: Add option to list of options.
    * invoke.texi: Add Character conversion subsection to Extensions
    section.
    * lang.opt: Add new option.
    * options.c (set_dec_flags): Add SET_BITFLAG for
    flag_dec_char_conversions.
    * resolve.c (resolve_ordindary_assign): Issue error if the left hand
    side is numeric or logical and the right hand side is a character
    variable.
    * simplify.c (gfc_convert_constant): Assign the conversion function
    depending on destination type.
    * trans-const.c (gfc_constant_to_tree): Use OPT_Wsurprising in
    gfc_warning allowing the warning to be switched off only if
    flag_dec_char_conversions is enabled.

gcc/testsuite/gfortran.dg

    Jim MacArthur <jim.macart...@codethink.co.uk>
    Mark Eggleston <mark.eggles...@codethink.com>

    PR fortran/89103
    * gfortran.dg/dec_char_conversion_in_assignment_1.f90: New test.
    * gfortran.dg/dec_char_conversion_in_assignment_2.f90: New test.
    * gfortran.dg/dec_char_conversion_in_assignment_3.f90: New test.
    * gfortran.dg/dec_char_conversion_in_assignment_4.f90: New test.
    * gfortran.dg/dec_char_conversion_in_assignment_5.f90: New test.
    * gfortran.dg/dec_char_conversion_in_assignment_6.f90: New test.
    * gfortran.dg/dec_char_conversion_in_assignment_7.f90: New test.
    * gfortran.dg/dec_char_conversion_in_assignment_8.f90: New test.
    * gfortran.dg/dec_char_conversion_in_data_1.f90: New test.
    * gfortran.dg/dec_char_conversion_in_data_2.f90: New test.
    * gfortran.dg/dec_char_conversion_in_data_3.f90: New test.
    * gfortran.dg/dec_char_conversion_in_data_4.f90: New test.
    * gfortran.dg/dec_char_conversion_in_data_5.f90: New test.
    * gfortran.dg/dec_char_conversion_in_data_6.f90: New test.
    * gfortran.dg/dec_char_conversion_in_data_7.f90: New test.
    * gfortran.dg/hollerith5.f90: Add -Wsurprising to options.
    * gfortran.dg/hollerith_legacy.f90: Add -Wsurprising to options.
    * gfortran.dg/no_char_to_numeric_assign.f90: New test.

Reply via email to