2 ! { dg-options "-std=f2003 -fall-intrinsics" }
3 ! Tests the functionality of the patch for PR29642, which requested the
4 ! implementation of the F2003 VALUE attribute for gfortran.
6 ! Contributed by Paul Thomas <pault@gcc.gnu.org>
14 subroutine typhoo (dt)
15 type(mytype), value :: dt
16 if (dtne (dt, mytype (42.0, "lmno"))) call abort ()
17 dt = mytype (21.0, "wxyz")
18 if (dtne (dt, mytype (21.0, "wxyz"))) call abort ()
21 logical function dtne (a, b)
24 if ((a%x /= b%x) .or. (a%c /= b%c)) dtne = .TRUE.
32 character(2) :: c = "ab"
33 complex(8) :: z = (-99.0, 199.0)
34 type(mytype) :: dt = mytype (42.0, "lmno")
37 if (c /= "ab") call abort ()
40 if (i /= 42) call abort ()
43 if (r /= 42.0) call abort ()
46 if (z /= (-99.0, 199.0)) call abort ()
49 if (dtne (dt, mytype (42.0, "lmno"))) call abort ()
52 call foobar (r*2.0 + 2.0)
56 character(2), value :: c
57 if (c /= "ab") call abort ()
59 if (c /= "cd") call abort ()
63 integer(8), value :: i
64 if (i /= 42) call abort ()
66 if (i /= 99) call abort ()
71 if (r /= 42.0) call abort ()
73 if (r /= 99.0) call abort ()
76 subroutine complex_foo (z)
77 COMPLEX(8), value :: z
78 if (z /= (-99.0, 199.0)) call abort ()
80 if (z /= (77.0, -42.0)) call abort ()
81 end subroutine complex_foo
83 end program test_value
84 ! { dg-final { cleanup-modules "global" } }