forked from OSchip/llvm-project
49 lines
1.1 KiB
Fortran
49 lines
1.1 KiB
Fortran
! RUN: %python %S/test_errors.py %s %flang_fc1
|
|
! "Same type" checking for intrinsic assignment
|
|
module m1
|
|
type :: nonSeqType
|
|
integer :: n1
|
|
end type
|
|
type :: seqType
|
|
sequence
|
|
integer :: n2
|
|
end type
|
|
type, bind(c) :: bindCType
|
|
integer :: n3
|
|
end type
|
|
end module
|
|
|
|
program test
|
|
use m1, modNonSeqType => nonSeqType, modSeqType => seqType, modBindCType => bindCType
|
|
type :: nonSeqType
|
|
integer :: n1
|
|
end type
|
|
type :: seqType
|
|
sequence
|
|
integer :: n2
|
|
end type
|
|
type, bind(c) :: bindCType
|
|
integer :: n3
|
|
end type
|
|
type(modNonSeqType) :: mns1, mns2
|
|
type(modSeqType) :: ms1, ms2
|
|
type(modBindCType) :: mb1, mb2
|
|
type(nonSeqType) :: ns1, ns2
|
|
type(seqType) :: s1, s2
|
|
type(bindCType) :: b1, b2
|
|
! These are trivially ok
|
|
mns1 = mns2
|
|
ms1 = ms2
|
|
mb1 = mb2
|
|
ns1 = ns2
|
|
s1 = s2
|
|
b1 = b2
|
|
! These are ok per 7.5.2.4
|
|
ms1 = s1
|
|
mb1 = b1
|
|
!ERROR: No intrinsic or user-defined ASSIGNMENT(=) matches operand types TYPE(modnonseqtype) and TYPE(nonseqtype)
|
|
mns1 = ns1
|
|
!ERROR: No intrinsic or user-defined ASSIGNMENT(=) matches operand types TYPE(nonseqtype) and TYPE(modnonseqtype)
|
|
ns1 = mns1
|
|
end
|