https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127683

            Bug ID: 127683
           Summary: ICE with out-of-order declaration and ASSOCIATE
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: anlauf at gcc dot gnu.org
  Target Milestone: ---

Testcase:

program test
  implicit none
  print *, 1
  complex :: zz(3) = [1,2,3]
  associate (r => zz%re)
  end associate
end program

Crashes here with:

    4 |   complex :: zz(3) = [1,2,3]
      |                            1
Error: data declaration statement at (1) cannot appear after executable
statements
f951: internal compiler error: in gfc_find_derived_types, at
fortran/symbol.cc:2528
0x3e4b14f internal_error(char const*, ...)
        ../../gcc-trunk/gcc/diagnostic-global-context.cc:787
0x3e5b55d fancy_abort(char const*, int, char const*)
        ../../gcc-trunk/gcc/diagnostics/context.cc:1813
0x11792d3 gfc_find_derived_types(gfc_symbol*, gfc_namespace*, char const*,
bool)
        ../../gcc-trunk/gcc/fortran/symbol.cc:2528
0x1117e2d gfc_match_varspec(gfc_expr*, int, bool, bool)
        ../../gcc-trunk/gcc/fortran/primary.cc:2442
0x111cfbf gfc_match_rvalue(gfc_expr**)
        ../../gcc-trunk/gcc/fortran/primary.cc:4401
0x10af51f match_primary
        ../../gcc-trunk/gcc/fortran/matchexp.cc:217
0x10af630 match_level_1
        ../../gcc-trunk/gcc/fortran/matchexp.cc:267
0x10af6f2 match_mult_operand
        ../../gcc-trunk/gcc/fortran/matchexp.cc:323
0x10af8fd match_add_operand
        ../../gcc-trunk/gcc/fortran/matchexp.cc:412
0x10afbbd match_level_2
        ../../gcc-trunk/gcc/fortran/matchexp.cc:536
0x10afd4f match_level_3
        ../../gcc-trunk/gcc/fortran/matchexp.cc:607
0x10afe53 match_level_4
        ../../gcc-trunk/gcc/fortran/matchexp.cc:655
0x10b0189 match_and_operand
        ../../gcc-trunk/gcc/fortran/matchexp.cc:749
0x10b020d match_or_operand
        ../../gcc-trunk/gcc/fortran/matchexp.cc:778
0x10b0311 match_equiv_operand
        ../../gcc-trunk/gcc/fortran/matchexp.cc:821
0x10b0415 match_level_5
        ../../gcc-trunk/gcc/fortran/matchexp.cc:867
0x10b055e gfc_match_expr(gfc_expr**)
        ../../gcc-trunk/gcc/fortran/matchexp.cc:926
0x109ee19 gfc_match(char const*, ...)
        ../../gcc-trunk/gcc/fortran/match.cc:1137
0x10a10ca match_association_list(bool)
        ../../gcc-trunk/gcc/fortran/match.cc:2185
0x10a1708 gfc_match_associate()
        ../../gcc-trunk/gcc/fortran/match.cc:2392

Reply via email to