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

            Bug ID: 79312
           Summary: Empty array in assignment not correctly type-checked
           Product: gcc
           Version: 6.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: john.harper at vuw dot ac.nz
  Target Milestone: ---

This program violates f2008 syntax rule 7.2.1.2(4) but gfortran 6.1.1 on an
x86-64 system compiles and runs it, printing 0

   program emptyarray5
    implicit none
    real a(0)
    a = [logical::]
    print *,size(a)
  end program emptyarray5

! f2008 7.2.1.2 (4) if the variable is polymorphic it shall be type
! compatible with expr ; otherwise the declared types of the variable and
! expr shall conform as specified in Table 7.8,
!
! Table 7.8: Type conformance for the intrinsic assignment statement
!
! Type of the variable | Type of expr
!-----------------------------------------------------------+
!   integer            |       integer, real, complex       |
!     real             |       integer, real, complex       |
!   complex            |       integer, real, complex       |
!  character           |              character             |
!   logical            |               logical              |
!  derived type        |  same derived type as the variable |
!-----------------------------------------------------------+

Reply via email to