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]

Reply via email to