diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/parent_result_ref_2.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/parent_result_ref_2.f90 | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/parent_result_ref_2.f90 b/gcc/testsuite/gfortran.dg/parent_result_ref_2.f90 new file mode 100644 index 000000000..38a5fdc7b --- /dev/null +++ b/gcc/testsuite/gfortran.dg/parent_result_ref_2.f90 @@ -0,0 +1,35 @@ +! { dg-do run }
+! Tests the fix for PR19546 in which an ICE would result from
+! setting the parent result in a contained procedure.
+! This case tests character results.
+!
+function f() + character(4) :: f + f = "efgh" + call sub () + if (f.eq."iklm") f = "abcd" + call sub () +contains + subroutine sub + f = "wxyz" + if (f.eq."efgh") f = "iklm" + end subroutine sub +end function f + +function g() ! { dg-warning "Obsolescent feature" } + character(*) :: g + g = "efgh" + call sub () + if (g.eq."iklm") g = "ABCD" + call sub () +contains + subroutine sub + g = "WXYZ" + if (g.eq."efgh") g = "iklm" + end subroutine sub +end function g + + character(4), external :: f, g
+ if (f ().ne."wxyz") call abort () + if (g ().ne."WXYZ") call abort () +end
|