[PATCH] Fortran : ICE in build_field PR95614

Mark Eggleston mark.eggleston@codethink.co.uk
Mon Sep 14 07:23:19 GMT 2020


**ping**

On 04/09/2020 08:35, Mark Eggleston wrote:
> Please find attached a fix for PR95614.  The original patch was by 
> Steve Kargl.
>
> The original patch resulted in name clashes between global identifiers 
> naming common blocks and local identifiers.  According to the 2018 
> standard 19.3.1 Classes of local identifiers, item 2, a local 
> identifier shall not be the same as a global identifier, however, 
> there is an exception where the global identifier is a common block name.
>
> The change to the patch is:
>
> if (gsym && gsym->type != GSYM_UNKNOWN && gsym->type != GSYM_COMMON)
>
> instead of:
>
> if (gsym && gsym->type != GSYM_UNKNOWN)
>
> Tested on x86_64 using make -j 8 check-fortran.
>
> OK to commit?
>
> [PATCH] Fortran  :  ICE in build_field PR95614
>
> Local identifiers can not be the same as a module name. Original
> patch by Steve Kargl resulted in name clashes between common block
> names and local identifiers.  A local identifier can be the same as
> a global identier if that identifier represents a common.  The patch
> was modified to allow global identifiers that represent a common
> block.
>
> 2020-09-04  Steven G. Kargl  <kargl@gcc.gnu.org>
>         Mark Eggleston  <markeggleston@gcc.gnu.org>
>
> gcc/fortran/
>
>     PR fortran/95614
>     * decl.c (gfc_get_common): Use gfc_match_common_name instead
>     of match_common_name.
>     * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
>     of match_common_name.
>     * match.c : Rename match_common_name to gfc_match_common_name.
>     * match.c (gfc_match_common): Use gfc_match_common_name instead
>     of match_common_name.
>     * match.h : Rename match_common_name to gfc_match_common_name.
>     * resolve.c (resolve_common_vars): Check each symbol in a
>     common block has a global symbol.  If there is a global symbol
>     issue an error if the symbol type is known as is not a common
>     block name.
>
> 2020-09-04  Mark Eggleston  <markeggleston@gcc.gnu.org>
>
> gcc/testsuite/
>
>     PR fortran/95614
>     * gfortran.dg/pr95614_1.f90: New test.
>     * gfortran.dg/pr95614_2.f90: New test.
>
>
-- 
https://www.codethink.co.uk/privacy.html



More information about the Gcc-patches mailing list