32 lines
749 B
Fortran
32 lines
749 B
Fortran
|
! { dg-do compile }
|
||
|
! { dg-options "-O0" }
|
||
|
! PR20902 - Overlapping initializers in an equivalence block must
|
||
|
! have the same value.
|
||
|
!
|
||
|
! The code was replaced completely after the fix for PR30875, which
|
||
|
! is a repeat of the original and comes from the same contributor.
|
||
|
! The fix for 20902 was wrong.
|
||
|
!
|
||
|
! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
|
||
|
!
|
||
|
TYPE T1
|
||
|
sequence
|
||
|
integer :: i=1
|
||
|
END TYPE T1
|
||
|
TYPE T2 ! OK because initializers are equal
|
||
|
sequence
|
||
|
integer :: i=1
|
||
|
END TYPE T2
|
||
|
TYPE T3
|
||
|
sequence
|
||
|
integer :: i=2 ! { dg-error "Overlapping unequal initializers" }
|
||
|
END TYPE T3
|
||
|
TYPE(T1) :: a1
|
||
|
TYPE(T2) :: a2
|
||
|
TYPE(T3) :: a3
|
||
|
EQUIVALENCE (a1, a2)
|
||
|
EQUIVALENCE (a1, a3)
|
||
|
write(6, *) a1, a2, a3
|
||
|
END
|
||
|
|