diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/aliasing_dummy_2.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/aliasing_dummy_2.f90 | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/aliasing_dummy_2.f90 b/gcc/testsuite/gfortran.dg/aliasing_dummy_2.f90 new file mode 100644 index 000000000..3a3856f68 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/aliasing_dummy_2.f90 @@ -0,0 +1,24 @@ +! { dg-do compile } +! This tests the fix for PR28885, in which multiple calls to a procedure +! with different components of an array of derived types for an INTENT(OUT) +! argument caused an ICE internal compiler error. This came about because +! the compiler would lose the temporary declaration with each subsequent +! call of the procedure. +! +! Reduced from the contribution by Drew McCormack <drewmccormack@mac.com> +! +program test + type t + integer :: i + integer :: j + end type + type (t) :: a(5) + call sub('one',a%j) + call sub('two',a%i) +contains + subroutine sub(key,a) + integer, intent(out) :: a(:) + character(*),intent(in) :: key + a = 1 + end subroutine +end program |