File: assign08.f90

package info (click to toggle)
llvm-toolchain-15 1%3A15.0.6-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,554,644 kB
  • sloc: cpp: 5,922,452; ansic: 1,012,136; asm: 674,362; python: 191,568; objc: 73,855; f90: 42,327; lisp: 31,913; pascal: 11,973; javascript: 10,144; sh: 9,421; perl: 7,447; ml: 5,527; awk: 3,523; makefile: 2,520; xml: 885; cs: 573; fortran: 567
file content (48 lines) | stat: -rw-r--r-- 1,149 bytes parent folder | download | duplicates (27)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
! 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