OSDN Git Service

2010-04-22 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / equiv_constraint_5.f90
index 1eefa81..1f7dddc 100644 (file)
@@ -1,18 +1,31 @@
 ! { dg-do compile }
 ! { dg-options "-O0" }
-! PR20902 - Structure with default initializer cannot be equivalence memeber.
+! 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
- sequence
- integer :: i      ! drop original initializer to pick up error below.
-END TYPE T2
-TYPE(T1) :: a1
-TYPE(T2) :: a2
-EQUIVALENCE(a1,a2) ! { dg-error "initializer cannot be an EQUIVALENCE" }
-write(6,*) a1,a2
+!
+  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