43 lines
2.1 KiB
Fortran
43 lines
2.1 KiB
Fortran
! RUN: %python %S/test_errors.py %s %flang_fc1
|
|
program main
|
|
implicit none
|
|
contains
|
|
subroutine good(x, y, z, dim_a, scalar1, scalar2)
|
|
integer :: dim_a(1)
|
|
!valid cases
|
|
!simple rank-1 integer array reference
|
|
! ERROR: not yet implemented: Analyze overload for AssumedShapeBoundsSpec
|
|
integer :: x(dim_a:)
|
|
!rank-1 integer array + scalar = rank-1 integer array
|
|
! ERROR: not yet implemented: Analyze overload for AssumedShapeBoundsSpec
|
|
integer :: y(dim_a + 2:)
|
|
!rank-1 integer array via array constructor literal, with some non-const values
|
|
! ERROR: not yet implemented: Analyze overload for AssumedShapeBoundsSpec
|
|
integer :: z([1,2,dim_a(1) + x(dim_a(1))]:)
|
|
!rank-1 zero sized array is valid and should declare a scalar
|
|
! ERROR: not yet implemented: Analyze overload for AssumedShapeBoundsSpec
|
|
integer :: scalar1([integer::]:)
|
|
integer :: empty_arr(0) = [integer::]
|
|
! ERROR: not yet implemented: Analyze overload for AssumedShapeBoundsSpec
|
|
integer :: scalar2(empty_arr:)
|
|
end subroutine
|
|
|
|
subroutine bad(x, y, z, dim1_assumed, dim2_assumed)
|
|
integer :: dim3(3, 3, 3)
|
|
integer :: dim1_assumed(:)
|
|
integer :: dim2_assumed(:,:)
|
|
! invalid cases:
|
|
! future_ERROR: Rank-1 integer array used as lower bounds in DECLARATION must have constant size
|
|
! ERROR: not yet implemented: Analyze overload for AssumedShapeBoundsSpec
|
|
integer :: x(dim1_assumed:)
|
|
! future_ERROR: Integer array used as lower bounds in DECLARATION must be rank-1 but is rank-3
|
|
! ERROR: not yet implemented: Analyze overload for AssumedShapeBoundsSpec
|
|
integer :: y(dim3:)
|
|
! Combining both errors in one declaration, plus integer-check from type wrapper
|
|
! future_ERROR: Integer array used as lower bounds in DECLARATION must be rank-1 but is rank-2
|
|
! future_ERROR: Rank-1 integer array used as lower bounds in DECLARATION must have constant size
|
|
! ERROR: not yet implemented: Analyze overload for AssumedShapeBoundsSpec
|
|
! ERROR: Must have INTEGER type, but is REAL(4)
|
|
integer :: z(dim2_assumed + 3.7:)
|
|
end subroutine
|
|
end program
|