blob: 700da0eb1755e44abe551b719de29c3c79315bf2 (
plain)
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
|
! { dg-do run }
!
! Test the fix for PR38915 in which the character length of the
! temporaries produced in the assignments marked below was set to
! one.
!
! Contributed by Dick Hendrickson <dick.hendrickson@gmail.com>
!
program cg0033_41
type t
sequence
integer i
character(len=9) c
end type t
type (t) L(3),R(3), LL(4), RR(4)
EQUIVALENCE (L,LL)
integer nfv1(3), nfv2(3)
R(1)%c = '123456789'
R(2)%c = 'abcdefghi'
R(3)%c = '!@#$%^&*('
L%c = R%c
LL(1:3)%c = R%c
LL(4)%c = 'QWERTYUIO'
RR%c = LL%c ! The equivalence forces a dependency
L%c = LL(2:4)%c
if (any (RR(2:4)%c .ne. L%c)) call abort
nfv1 = (/1,2,3/)
nfv2 = nfv1
L%c = R%c
L(nfv1)%c = L(nfv2)%c ! The vector indices force a dependency
if (any (R%c .ne. L%c)) call abort
end
|