[WebAssembly] Fix asan issue from https://reviews.llvm.org/D121349
[llvm-project.git] / flang / test / Semantics / structconst02.f90
blobe5ccc0f005df30129d904297367b05b1d1a6e3ba
1 ! RUN: %python %S/test_errors.py %s %flang_fc1
2 ! Error tests for structure constructors: per-component type
3 ! (in)compatibility.
5 module module1
6 interface
7 real function realfunc(x)
8 real, value :: x
9 end function realfunc
10 end interface
11 type :: scalar(ik,rk,zk,ck,lk,len)
12 integer, kind :: ik = 4, rk = 4, zk = 4, ck = 1, lk = 1
13 integer, len :: len = 1
14 integer(kind=ik) :: ix = 0
15 real(kind=rk) :: rx = 0.
16 complex(kind=zk) :: zx = (0.,0.)
17 !ERROR: An automatic variable or component must not be initialized
18 character(kind=ck,len=len) :: cx = ' '
19 logical(kind=lk) :: lx = .false.
20 real(kind=rk), pointer :: rp => NULL()
21 procedure(realfunc), pointer, nopass :: rfp1 => NULL()
22 procedure(real), pointer, nopass :: rfp2 => NULL()
23 end type scalar
24 contains
25 subroutine scalararg(x)
26 type(scalar), intent(in) :: x
27 end subroutine scalararg
28 subroutine errors
29 call scalararg(scalar(4)(ix=1,rx=2.,zx=(3.,4.),cx='a',lx=.true.))
30 call scalararg(scalar(4)(1,2.,(3.,4.),'a',.true.))
31 ! call scalararg(scalar(4)(ix=5.,rx=6,zx=(7._8,8._2),cx=4_'b',lx=.true._4))
32 ! call scalararg(scalar(4)(5.,6,(7._8,8._2),4_'b',.true._4))
33 call scalararg(scalar(4)(ix=5.,rx=6,zx=(7._8,8._2),cx=4_'b',lx=.true.))
34 call scalararg(scalar(4)(5.,6,(7._8,8._2),4_'b',.true.))
35 !ERROR: Value in structure constructor of type 'CHARACTER(1)' is incompatible with component 'ix' of type 'INTEGER(4)'
36 call scalararg(scalar(4)(ix='a'))
37 !ERROR: Value in structure constructor of type 'LOGICAL(4)' is incompatible with component 'ix' of type 'INTEGER(4)'
38 call scalararg(scalar(4)(ix=.false.))
39 !ERROR: Rank-1 array value is not compatible with scalar component 'ix'
40 call scalararg(scalar(4)(ix=[1]))
41 !TODO more!
42 end subroutine errors
43 end module module1