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

            Bug ID: 127139
           Summary: internal compiler error with polymorphic merge and
                    assumed-rank argument
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mikael at gcc dot gnu.org
  Target Milestone: ---

testcase:

module mod
  implicit none
  type :: t
    integer :: c1
  end type
contains
  function f(a, b, l)
    class(t), intent(in) :: a(..), b
    logical, intent(in) :: l
    class(t), allocatable :: f
    select rank(a)
      rank(0)
        f = merge(a, b, l)
      rank default
        error stop 1
    end select
  end function
end module

compilation gives:
test_merge.f90:13:26:

   13 |         f = merge(a, b, l)
      |                          1
internal compiler error: in fold_convert_loc, at fold-const.cc:2682
0x26c8a2d internal_error(char const*, ...)
        ../../src/gcc/diagnostic-global-context.cc:787
0x978c1d fancy_abort(char const*, int, char const*)
        ../../src/gcc/diagnostics/context.cc:1813
0x789488 fold_convert_loc(unsigned long, tree_node*, tree_node*)
        ../../src/gcc/fold-const.cc:2682
0xb2d342 gfc_conv_intrinsic_merge
        ../../src/gcc/fortran/trans-intrinsic.cc:7898
0xb18db9 gfc_trans_assignment_1
        ../../src/gcc/fortran/trans-expr.cc:13712
0xab8347 trans_code
        ../../src/gcc/fortran/trans.cc:2382
0xb6f56f gfc_trans_block_construct(gfc_code*)
        ../../src/gcc/fortran/trans-stmt.cc:2580
0xab8442 trans_code
        ../../src/gcc/fortran/trans.cc:2482
0xb682e5 gfc_trans_select_rank_cases
        ../../src/gcc/fortran/trans-stmt.cc:4024
0xb710b4 gfc_trans_select_rank(gfc_code*)
        ../../src/gcc/fortran/trans-stmt.cc:4079
0xab8377 trans_code
        ../../src/gcc/fortran/trans.cc:2506
0xb6f56f gfc_trans_block_construct(gfc_code*)
        ../../src/gcc/fortran/trans-stmt.cc:2580
0xab8442 trans_code
        ../../src/gcc/fortran/trans.cc:2482
0xaf2a19 gfc_generate_function_code(gfc_namespace*)
        ../../src/gcc/fortran/trans-decl.cc:8346
0xabdbd1 gfc_generate_module_code(gfc_namespace*)
        ../../src/gcc/fortran/trans.cc:2818
0xa53525 translate_all_program_units
        ../../src/gcc/fortran/parse.cc:7718
0xa53525 gfc_parse_file()
        ../../src/gcc/fortran/parse.cc:8061
0xab4e0f gfc_be_parse_file
        ../../src/gcc/fortran/f95-lang.cc:249
/home/mik/gcc/gccx/build/gcc/f951 test_merge.f90
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to