! { dg-do compile } ! ! Allocation of arrays with a type-spec specification with implicit none. ! subroutine implicit_none_test1 implicit none real, allocatable :: x(:) real(4), allocatable :: x4(:) real(8), allocatable :: x8(:) double precision, allocatable :: d1(:) doubleprecision, allocatable :: d2(:) character, allocatable :: c1(:) type a integer mytype end type a type(a), allocatable :: b(:) allocate(complex :: x(1)) ! { dg-error "is type incompatible" } allocate(real(8) :: x4(1)) ! { dg-error "differs from the kind type parameter" } allocate(real(4) :: x8(1)) ! { dg-error "differs from the kind type parameter" } allocate(double :: d1(1)) ! { dg-error "Error in type-spec at" } allocate(character(:) :: c1(1)) ! { dg-error "cannot contain a deferred type parameter" } allocate(real :: b(1)) ! { dg-error "is type incompatible" } end subroutine implicit_none_test1 ! ! Allocation of a scalar with a type-spec specification with implicit none ! subroutine implicit_none_test2 implicit none real, allocatable :: x real(4), allocatable :: x4 real(8), allocatable :: x8 double precision, allocatable :: d1 character, allocatable :: c1 type a integer mytype end type a type(a), allocatable :: b allocate(complex :: x) ! { dg-error "is type incompatible" } allocate(real(8) :: x4) ! { dg-error "differs from the kind type parameter" } allocate(real(4) :: x8) ! { dg-error "differs from the kind type parameter" } allocate(double :: d1) ! { dg-error "Error in type-spec at" } allocate(character(:) :: c1) ! { dg-error "cannot contain a deferred type parameter" } allocate(real :: b) ! { dg-error "is type incompatible" } end subroutine implicit_none_test2 ! ! Allocation of arrays with a type-spec specification with implicit none. ! subroutine implicit_test3 real, allocatable :: x(:) real(4), allocatable :: x4(:) real(8), allocatable :: x8(:) double precision, allocatable :: d1(:) doubleprecision, allocatable :: d2(:) character, allocatable :: c1(:) type a integer mytype end type a type(a), allocatable :: b(:) allocate(complex :: x(1)) ! { dg-error "is type incompatible" } allocate(real(8) :: x4(1)) ! { dg-error "differs from the kind type parameter" } allocate(real(4) :: x8(1)) ! { dg-error "differs from the kind type parameter" } allocate(double :: d1(1)) ! { dg-error "Error in type-spec" } allocate(character(:) :: c1(1)) ! { dg-error "cannot contain a deferred type parameter" } allocate(real :: b(1)) ! { dg-error "is type incompatible" } end subroutine implicit_test3 ! ! Allocation of a scalar with a type-spec specification without implicit none ! subroutine implicit_test4 real, allocatable :: x real(4), allocatable :: x4 real(8), allocatable :: x8 double precision, allocatable :: d1 character, allocatable :: c1 type a integer mytype end type a type(a), allocatable :: b allocate(complex :: x) ! { dg-error "is type incompatible" } allocate(real(8) :: x4) ! { dg-error "differs from the kind type parameter" } allocate(real(4) :: x8) ! { dg-error "differs from the kind type parameter" } allocate(double :: d1) ! { dg-error "Error in type-spec at" } allocate(character(:) :: c1) ! { dg-error "cannot contain a deferred type parameter" } allocate(real :: b) ! { dg-error "is type incompatible" } end subroutine implicit_test4