diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/derived_comp_array_ref_4.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/derived_comp_array_ref_4.f90 | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/derived_comp_array_ref_4.f90 b/gcc/testsuite/gfortran.dg/derived_comp_array_ref_4.f90 new file mode 100644 index 000000000..0c7853989 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/derived_comp_array_ref_4.f90 @@ -0,0 +1,38 @@ +! { dg-do run } +! Tests the fix for PR33376, which was a regression caused by the +! fix for PR31564. +! +! Contributed by Harald Anlauf <anlauf@gmx.de> +! +module foo + implicit none + public chk + + type mytype + character(len=4) :: str + end type mytype + type (mytype) ,parameter :: chk (2) & + = (/ mytype ("abcd") , mytype ("efgh") /) +end module foo + +module gfcbug70 + use foo, only: chk_ => chk + implicit none +contains + + subroutine chk (i) + integer, intent(in) :: i + if (i .eq. 1) then + if (chk_(i)% str .ne. "abcd") call abort () + else + if (chk_(i)% str .ne. "efgh") call abort () + end if + + end subroutine chk +end module gfcbug70 + + use gfcbug70 + call chk (2) + call chk (1) +end +! { dg-final { cleanup-modules "foo gfcbug70" } } |