This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fortran - character type names in errors and warning - for review'
- From: Steve Kargl <sgk at troutmask dot apl dot washington dot edu>
- To: Mark Eggleston <mark dot eggleston at codethink dot co dot uk>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, fortran <fortran at gcc dot gnu dot org>
- Date: Thu, 12 Sep 2019 14:00:29 -0700
- Subject: Re: [PATCH] Fortran - character type names in errors and warning - for review'
- References: <ffb60571-24de-5270-1b35-91dad0e4429e@codethink.co.uk>
- Reply-to: sgk at troutmask dot apl dot washington dot edu
On Mon, Sep 09, 2019 at 02:52:20PM +0100, Mark Eggleston wrote:
> gcc/fortran
>
> Mark Eggleston <mark.eggleston@codethink.com>
>
> * arith.c (gfc_arith_concat): Set length field in typespec.
> * expr.c (gfc_get_character_expr): Set length field in typespec.
> * gfortran.h: Add length field to gfc_typespec for use to allow the
> length to available for character literals.
> * interface.c (gfc_check_dummy_characteristics): Use gfc_dummy_typename
> instead of gfc_typename when constructing error message to allow for
> CHARACTER(*) and CHARACTER(*,4).
> (compare_parameter): Use gfc_dummy_typename for formal argument when
> constructing error message to allow for CHARACTER(*) and
> CHARACTER(*,4).
> * intrinsic.c (gfc_actual_arglist): Reword error message so that
> CHARACTER(*) or CHARACTER(*,4) can be reported as the target type. Use
> gfc_dummy_typename for the formal argument.
> * misc.c (gfc_typename): Add new local variable length and initialise
> with the value from the length field in typespec passed in. If there
> is a character structure use the value from there for length. If the
> kind is the default character kind construct the type name using length
> otherwise use the length followed by kind separated by a comma.
> (gfc_dummy_typename): New routine for use with formal arguments, if the
> typespec does not have a character length structure then the length is
> assumed and * is used for the length, if kind is not the default
> character kind follow * with a comma and then the kind.
>
> gcc/testsuite
>
> Mark Eggleston <mark.eggleston@codethink.com>
>
> * gfortran.dg/bad_operands.f90: New test.
> * gfortran.dg/character mismatch.f90: New test.
> * gfortran.dg/compare_interfaces.f90: New test.
> * gfortran.dg/widechar_intrinsics_1.f90: Checked for specific character
> type names instead of "Type of argument".
> * gfortran.dg/widechar_intrinsics_2.f90: Checked for specific character
> type names instead of "Type of argument".
> * gfortran.dg/widechar_intrinsics_3.f90: Checked for specific character
> type names instead of "Type of argument".
>
This looks OK to me. I don't know if anyone else will
glance at the patch. You said that the patch has the
feeling of a kludge. This is probably a by-product of
bolting kind=4 support onto what gfortran inherited long
ago.
--
steve