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

            Bug ID: 78593
           Summary: ICE in gfc_match_varspec, at fortran/primary.c:2053
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gerhard.steinmetz.fort...@t-online.de
  Target Milestone: ---

Invalid code with a hidden type declaration.
Affects version 6 and 7 (configured with --enable-checking=yes)
(bailed out if configured with --enable-checking=release).
No ICE (or bailing out) seen with version 5 and older.


$ cat z1.f90
module m1
   private
   type t
      integer :: a
   end type
end

module m2
   use m1
   interface operator(+)
      module procedure add
   end interface
contains
   type(t) function add (x, y)
      type(t), intent(in) :: x, y
      add%a = x%a + y%a
   end
end


$ gfortran-7-20161127 -c z1.f90
z1.f90:15:13:

       type(t), intent(in) :: x, y
             1
Error: Derived type 't' at (1) is being used before it is defined
f951: internal compiler error: Segmentation fault
0xc4532f crash_signal
        ../../gcc/toplev.c:333
0x6e97dc gfc_match_varspec(gfc_expr*, int, bool, bool)
        ../../gcc/fortran/primary.c:2053
0x6eb136 gfc_match_rvalue(gfc_expr**)
        ../../gcc/fortran/primary.c:3335
0x6c237e match_primary
        ../../gcc/fortran/matchexp.c:157
0x6c237e match_level_1
        ../../gcc/fortran/matchexp.c:211
0x6c237e match_mult_operand
        ../../gcc/fortran/matchexp.c:267
0x6c25c8 match_add_operand
        ../../gcc/fortran/matchexp.c:356
0x6c285c match_level_2
        ../../gcc/fortran/matchexp.c:480
0x6c29b2 match_level_3
        ../../gcc/fortran/matchexp.c:551
0x6c2ac4 match_level_4
        ../../gcc/fortran/matchexp.c:599
0x6c2ac4 match_and_operand
        ../../gcc/fortran/matchexp.c:693
0x6c2c82 match_or_operand
        ../../gcc/fortran/matchexp.c:722
0x6c2d72 match_equiv_operand
        ../../gcc/fortran/matchexp.c:765
0x6c2e62 match_level_5
        ../../gcc/fortran/matchexp.c:811
0x6c21d1 gfc_match_expr(gfc_expr**)
        ../../gcc/fortran/matchexp.c:870
0x6bb534 gfc_match(char const*, ...)
        ../../gcc/fortran/match.c:1162
0x6c11f0 gfc_match_ptr_fcn_assign()
        ../../gcc/fortran/match.c:5504
0x6db919 match_word_omp_simd
        ../../gcc/fortran/parse.c:93
0x6deeae match_word
        ../../gcc/fortran/parse.c:365
0x6deeae decode_statement
        ../../gcc/fortran/parse.c:374

Reply via email to