https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124482
Bug ID: 124482
Summary: SEGV in resolve_cyclic_derived_type
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: ro at gcc dot gnu.org
CC: pault at gcc dot gnu.org
Target Milestone: ---
Target: sparc-sun-solaris2.11
Between 20260311 (909d18c29145edef4fdd0e1aeb07dfce11c1c9f9) and 20260312
(248298e48ee5bf3c2cc339111328c832af267b6b) the gfortran.dg/pr106946.f90 test
began to FAIL on Solaris/SPARC (both 32 and 64-bit):
+FAIL: gfortran.dg/pr106946.f90 -O (internal compiler error: Segmentation
Fault)
+FAIL: gfortran.dg/pr106946.f90 -O (test for excess errors)
Excess errors:
f951: internal compiler error: Segmentation Fault
0x2344623 internal_error(char const*, ...)
/vol/gcc/src/hg/master/local/gcc/diagnostic-global-context.cc:787
0x1247e6f crash_signal
/vol/gcc/src/hg/master/local/gcc/toplev.cc:325
0x941bf0 resolve_cyclic_derived_type
/vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:17539
0x941bf0 resolve_fl_derived0
/vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:17594
0x942363 resolve_fl_derived0
/vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:17568
0x942363 resolve_fl_derived
/vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:17749
0x93cc13 resolve_symbol
/vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:18183
0x97037b do_traverse_symtree
/vol/gcc/src/hg/master/local/gcc/fortran/symbol.cc:4491
0x94ed63 resolve_types
/vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:20185
0x93bb77 gfc_resolve(gfc_namespace*)
/vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:20305
0x92498f resolve_all_program_units
/vol/gcc/src/hg/master/local/gcc/fortran/parse.cc:7504
0x92498f gfc_parse_file()
/vol/gcc/src/hg/master/local/gcc/fortran/parse.cc:7766
0x98ebd3 gfc_be_parse_file
/vol/gcc/src/hg/master/local/gcc/fortran/f95-lang.cc:247
Thread 2 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
0x00941bf0 in resolve_cyclic_derived_type (derived=<optimized out>)
at /vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:17539
17539 if (CLASS_DATA (c)->ts.u.derived == derived)
(gdb) bt
#0 0x00941bf0 in resolve_cyclic_derived_type (derived=<optimized out>)
at /vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:17539
#1 resolve_fl_derived0 (sym=0x29ed0f0)
at /vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:17594
#2 0x00942364 in resolve_fl_derived0 (sym=0x29ed0f0)
at /vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:17568
#3 resolve_fl_derived (sym=0x29ed0f0)
at /vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:17749
#4 0x0093cc14 in resolve_symbol (sym=<optimized out>)
at /vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:18183
#5 0x0097037c in do_traverse_symtree (st=<optimized out>,
st_func=<optimized out>, sym_func=0x93c1a0 <resolve_symbol(gfc_symbol*)>)
at /vol/gcc/src/hg/master/local/gcc/fortran/symbol.cc:4491
#6 0x0094ed64 in resolve_types (ns=0x29e4268)
at /vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:20185
#7 0x0093bb78 in gfc_resolve (ns=0x29e4268)
at /vol/gcc/src/hg/master/local/gcc/fortran/resolve.cc:20305
#8 0x00924990 in resolve_all_program_units (
gfc_global_ns_list=<optimized out>)
at /vol/gcc/src/hg/master/local/gcc/fortran/parse.cc:7504
#9 gfc_parse_file () at /vol/gcc/src/hg/master/local/gcc/fortran/parse.cc:7766
#10 0x0098ebd4 in gfc_be_parse_file ()
at /vol/gcc/src/hg/master/local/gcc/fortran/f95-lang.cc:247
#11 0x0124863c in compile_file ()
at /vol/gcc/src/hg/master/local/gcc/toplev.cc:455
#12 0x0124c784 in do_compile ()
at /vol/gcc/src/hg/master/local/gcc/toplev.cc:2225
#13 toplev::main (this=<optimized out>, argc=<optimized out>,
argv=<optimized out>) at /vol/gcc/src/hg/master/local/gcc/toplev.cc:2389
#14 0x02318124 in main (argc=3, argv=0xffbfeda4)
at /vol/gcc/src/hg/master/local/gcc/main.cc:39
It can be reproduced as easily as
$ f951 pr106946.f90 -quiet
This is most likely due to
commit a8b70a96c34c526a91fcb11f20cc11c020bc27e6
Author: Paul Thomas <[email protected]>
Date: Thu Mar 12 17:35:51 2026 +0000
Fortran: gfortran PDT component access [PR122696]