https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65173
kargl at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kargl at gcc dot gnu.org
--- Comment #10 from kargl at gcc dot gnu.org ---
(In reply to Gerhard Steinmetz from comment #9)
> Another example, together with LANG=de_DE.UTF-8 :
>
>
> $ cat zz1.f90
> program p
> type t
> character, allocatable :: z1(:), z1(:)
> end type
> end
>
>
> $ gfortran-7-20161204 -m32 zz1.f90
> zz1.f90:3:37-44:
>
> character, allocatable :: z1(:), z1(:)
> 2 1
> Error: Component »z1« at (1) already declared at (2)
> f951: internal compiler error: Speicherzugriffsfehler
> 0xc4940f crash_signal
> ../../gcc/toplev.c:333
> 0x6f3aea gfc_resolve_expr(gfc_expr*)
> ../../gcc/fortran/resolve.c:6465
(gdb) bt
(gdb) bt
#0 gfc_is_constant_expr (e=0x837f) at ../../gcc7/gcc/fortran/expr.c:894
#1 0x000000000065a320 in resolve_component (c=0x20365f8c0, sym=0x203635f00)
at ../../gcc7/gcc/fortran/resolve.c:13507
#2 0x000000000065a9ab in resolve_fl_derived0 (sym=sym@entry=0x203635f00)
at ../../gcc7/gcc/fortran/resolve.c:13738
...
(gdb) up
#1 0x000000000065a320 in resolve_component (c=0x20365f8c0, sym=0x203635f00)
at ../../gcc7/gcc/fortran/resolve.c:13507
13507 || !gfc_is_constant_expr (c->ts.u.cl->length))
(gdb) p *c->ts.u.cl
$5 = {length = 0x837f, next = 0x20362b5d0, length_from_typespec = false,
backend_decl = 0x2039d8040, passed_length = 0x0, resolved = 56844672}
length=0x837f is an invalid pointer. So, gfortran ICE's. This
looks similar to the fight that Janus waged this weekend. For
some reason, a CHARACTER(LEN=....) component in a derived type
does not set the length correctly.