68 lines
1.9 KiB
Fortran
68 lines
1.9 KiB
Fortran
|
! RUN: %python %S/test_errors.py %s %flang_fc1
|
||
|
! Test that associations constructs can be correctly combined. The intrinsic
|
||
|
! functions are not what is tested here, they are only use to reveal the types
|
||
|
! of local variables.
|
||
|
|
||
|
implicit none
|
||
|
real res
|
||
|
complex zres
|
||
|
integer ires
|
||
|
class(*), allocatable :: a, b
|
||
|
select type(a)
|
||
|
type is (integer)
|
||
|
select type(b)
|
||
|
type is (integer)
|
||
|
ires = selected_int_kind(b)
|
||
|
ires = selected_int_kind(a)
|
||
|
end select
|
||
|
type is (real)
|
||
|
res = acos(a)
|
||
|
!ERROR: Actual argument for 'x=' has bad type 'CLASS(*)'
|
||
|
res = acos(b)
|
||
|
end select
|
||
|
|
||
|
select type(c => a)
|
||
|
type is (real)
|
||
|
res = acos(c)
|
||
|
class default
|
||
|
!ERROR: Actual argument for 'x=' has bad type 'CLASS(*)'
|
||
|
res = acos(c)
|
||
|
end select
|
||
|
select type(a)
|
||
|
type is (integer)
|
||
|
!ERROR: Actual argument for 'x=' has bad type 'INTEGER(4)'
|
||
|
res = acos(a)
|
||
|
end select
|
||
|
|
||
|
select type(b)
|
||
|
type is (integer)
|
||
|
associate(y=>1.0, x=>1, z=>(1.0,2.3))
|
||
|
ires = selected_int_kind(x)
|
||
|
select type(a)
|
||
|
type is (real)
|
||
|
res = acos(a)
|
||
|
res = acos(y)
|
||
|
!ERROR: Actual argument for 'x=' has bad type 'INTEGER(4)'
|
||
|
res = acos(b)
|
||
|
type is (integer)
|
||
|
ires = selected_int_kind(b)
|
||
|
zres = acos(z)
|
||
|
!ERROR: Actual argument for 'x=' has bad type 'INTEGER(4)'
|
||
|
res = acos(a)
|
||
|
end select
|
||
|
end associate
|
||
|
ires = selected_int_kind(b)
|
||
|
!ERROR: No explicit type declared for 'c'
|
||
|
ires = selected_int_kind(c)
|
||
|
!ERROR: Actual argument for 'x=' has bad type 'CLASS(*)'
|
||
|
res = acos(a)
|
||
|
class default
|
||
|
!ERROR: Actual argument for 'r=' has bad type 'CLASS(*)'
|
||
|
ires = selected_int_kind(b)
|
||
|
end select
|
||
|
!ERROR: Actual argument for 'r=' has bad type 'CLASS(*)'
|
||
|
ires = selected_int_kind(a)
|
||
|
!ERROR: Actual argument for 'x=' has bad type 'CLASS(*)'
|
||
|
res = acos(b)
|
||
|
end
|