Как выделить производный тип с параметризацией (Fortran 2003)? - PullRequest
2 голосов
/ 09 апреля 2019

Тестирую производный тип параметризованного.массив в производном типе содержит скалярное выражение.Например:

 integer :: a(n+2)

Я использовал компилятор Intel версии 18.0.Работает отлично.Но с gfortran 8.3 у меня внутренняя ошибка компилятора

Например:

 public 
  type  mytab(n)
    integer, len :: n
    integer :: tab1(n)
    integer :: tab2(n*2)
  end type mytab

contains

  subroutine create(pt1, n)    
    type(mytab(:)),allocatable, intent(out) :: pt1
    integer, intent(in) :: n
    allocate (mytab(n)::pt1)   
  end subroutine 

Распределение работает только для tab1, а не tab2

, это то, что получить какошибка.

 allocate (mytab(n)::pt1)


internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:3498
0x5c5fa9 gfc_conv_expr_op
    ../../gcc/fortran/trans-expr.c:3498
0x5c5fa9 gfc_conv_expr(gfc_se*, gfc_expr*)
    ../../gcc/fortran/trans-expr.c:7999
0x704b17 gfc_conv_expr_val(gfc_se*, gfc_expr*)
    ../../gcc/fortran/trans-expr.c:8056
0x704c30 gfc_conv_expr_type(gfc_se*, gfc_expr*, tree_node*)
    ../../gcc/fortran/trans-expr.c:8070
0x6e3401 structure_alloc_comps
    ../../gcc/fortran/trans-array.c:9129
0x6e6260 gfc_allocate_pdt_comp(gfc_symbol*, tree_node*, int, gfc_actual_arglist*)
    ../../gcc/fortran/trans-array.c:9405
0x73e4cd gfc_trans_allocate(gfc_code*)
    ../../gcc/fortran/trans-stmt.c:6599
0x6cf5e7 trans_code
    ../../gcc/fortran/trans.c:2001
0x6f5dbb gfc_generate_function_code(gfc_namespace*)
    ../../gcc/fortran/trans-decl.c:6515
0x6d2fe9 gfc_generate_module_code(gfc_namespace*)
    ../../gcc/fortran/trans.c:2227
0x68612b translate_all_program_units
    ../../gcc/fortran/parse.c:6112
0x68612b gfc_parse_file()
    ../../gcc/fortran/parse.c:6328
0x6cca5f gfc_be_parse_file
    ../../gcc/fortran/f95-lang.c:204
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
...