Hi Marc,

the patch looks reasonable and ok to me. Ok for trunk.

Thanks for the patch.

Regards,
        Andre

On Fri, 4 Sep 2020 08:35:59 +0100
Mark Eggleston <mark.eggles...@codethink.co.uk> 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  <ka...@gcc.gnu.org>
>          Mark Eggleston  <markeggles...@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  <markeggles...@gcc.gnu.org>
> 
> gcc/testsuite/
> 
>      PR fortran/95614
>      * gfortran.dg/pr95614_1.f90: New test.
>      * gfortran.dg/pr95614_2.f90: New test.
> 
> 


-- 
Andre Vehreschild * Email: vehre ad gmx dot de 

Reply via email to