I haven't yet committed this.

I am unfamiliar with Andre, I've checked MAINTAINERS and I find Andre in the "Write after approval" section.

Is Andre's approval sufficient? If so MAINTAINERS needs to be updated.

If not: OK to commit and backport?

regards,

Mark

On 14/09/2020 09:03, Andre Vehreschild wrote:
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.



--
https://www.codethink.co.uk/privacy.html

Reply via email to