34 lines
795 B
Fortran
34 lines
795 B
Fortran
! { 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
|
|
|