[Bug fortran/100970] New: ICE in output_constructor_regular_field, at varasm.c:5514

gscfq@t-online.de gcc-bugzilla@gcc.gnu.org
Tue Jun 8 17:10:33 GMT 2021


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

            Bug ID: 100970
           Summary: ICE in output_constructor_regular_field, at
                    varasm.c:5514
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gscfq@t-online.de
  Target Milestone: ---

These invalid codes (different shape for array assignment, see z0)
affect versions down to at least r5. Case z1 is silently accepted
(but not with -m32). I wonder how this could be related to pr100950.


$ cat z0.f90
module m
   integer :: a(1) = [1, 2]
end


$ cat z1.f90
module m
   type t
      integer :: a(1) = [1, 2]
      real, pointer :: b => null()
   end type
end


$ cat z2.f90
module m
   type t
      integer :: a(1) = [1, 2, 3]
      real, pointer :: b => null()
   end type
end


$ cat z3.f90
module m
   type t
      integer :: a(1) = [1, 2, 3, 4]
      real, pointer :: b => null()
   end type
end


$ cat z4.f90
module m
   type t
      integer :: a(1) = [1, 2, 3, 4, 5]
      real, pointer :: b => null()
   end type
   type(t) :: x
end


$ gfortran-12-20210606 -c z0.f90
z0.f90:2:18:

    2 |    integer :: a(1) = [1, 2]
      |                  1
Error: Different shape for array assignment at (1) on dimension 1 (1 and 2)

$ gfortran-12-20210606 -c z1.f90

$ gfortran-12-20210606 -c z4.f90
z4.f90:7:3:

    7 | end
      |   ^
internal compiler error: in output_constructor_regular_field, at varasm.c:5514
0xf3fdad output_constructor_regular_field
        ../../gcc/varasm.c:5514
0xf3fdad output_constructor
        ../../gcc/varasm.c:5820
0xf400ef output_constant
        ../../gcc/varasm.c:5172
0xf400ef assemble_variable_contents
        ../../gcc/varasm.c:2235
0xf47e8d assemble_variable(tree_node*, int, int, int)
        ../../gcc/varasm.c:2414
0xf4a18a varpool_node::assemble_decl()
        ../../gcc/varpool.c:595
0x8b0a8f output_in_order
        ../../gcc/cgraphunit.c:2135
0x8b0a8f symbol_table::compile()
        ../../gcc/cgraphunit.c:2353
0x8b33af symbol_table::compile()
        ../../gcc/cgraphunit.c:2540
0x8b33af symbol_table::finalize_compilation_unit()
        ../../gcc/cgraphunit.c:2537


More information about the Gcc-bugs mailing list