diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/actual_array_substr_1.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/actual_array_substr_1.f90 | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/actual_array_substr_1.f90 b/gcc/testsuite/gfortran.dg/actual_array_substr_1.f90 new file mode 100644 index 000000000..90108ec35 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/actual_array_substr_1.f90 @@ -0,0 +1,22 @@ +! { dg-do run } +! Test fix of PR28118, in which a substring reference to an +! actual argument with an array reference would cause a segfault. +! +! Contributed by Paul Thomas <pault@gcc.gnu.org> +! +program gfcbug33
+ character(12) :: a(2) + a(1) = "abcdefghijkl" + a(2) = "mnopqrstuvwx" + call foo ((a(2:1:-1)(6:))) + call bar ((a(:)(7:11))) +contains + subroutine foo (chr) + character(7) :: chr(:) + if (chr(1)//chr(2) .ne. "rstuvwxfghijkl") call abort () + end subroutine foo
+ subroutine bar (chr) + character(*) :: chr(:) + if (trim(chr(1))//trim(chr(2)) .ne. "ghijkstuvw") call abort () + end subroutine bar
+end program gfcbug33
|