aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.dg/internal_pack_14.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gfortran.dg/internal_pack_14.f90')
-rw-r--r--gcc-4.9/gcc/testsuite/gfortran.dg/internal_pack_14.f9034
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gfortran.dg/internal_pack_14.f90 b/gcc-4.9/gcc/testsuite/gfortran.dg/internal_pack_14.f90
new file mode 100644
index 000000000..1a4b3725f
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gfortran.dg/internal_pack_14.f90
@@ -0,0 +1,34 @@
+! { dg-do run }
+!
+! PR 55072: [4.6/4.7/4.8 Regression] Missing internal_pack leads to wrong code with derived type
+!
+! Contributed by Janus Weil <janus@gcc.gnu.org>
+
+program GiBUU_neutrino_bug
+
+ Type particle
+ integer :: ID
+ End Type
+
+ type(particle), dimension(1:2,1:2) :: OutPart
+
+ OutPart(1,:)%ID = 1
+ OutPart(2,:)%ID = 2
+
+ call s1(OutPart(1,:))
+
+contains
+
+ subroutine s1(j)
+ type(particle) :: j(:)
+ print *,j(:)%ID
+ call s2(j)
+ end subroutine
+
+ subroutine s2(k)
+ type(particle) :: k(1:2)
+ print *,k(:)%ID
+ if (any (k(1:2)%ID /= [1, 1])) call abort()
+ end subroutine
+
+end