From: Paul Thomas Date: Mon, 22 Dec 2008 23:16:44 +0000 (+0000) Subject: re PR fortran/35780 (internal compiler error for complicated PARAMETER expressions) X-Git-Tag: releases/gcc-4.4.0~1133 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d797a4ed797b6ba140e7fc9059835b74335cbcf5;p=thirdparty%2Fgcc.git re PR fortran/35780 (internal compiler error for complicated PARAMETER expressions) 2008-12-22 Paul Thomas PR fortran/35780 * gfortran.dg/alloc_comp_optional_1.f90: New test. From-SVN: r142890 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7fed67d29702..f17ce2bc12fb 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-12-22 Paul Thomas + + PR fortran/35780 + * gfortran.dg/alloc_comp_optional_1.f90: New test. + 2008-12-22 Ben Elliston PR c++/38362 diff --git a/gcc/testsuite/gfortran.dg/alloc_comp_optional_1.f90 b/gcc/testsuite/gfortran.dg/alloc_comp_optional_1.f90 new file mode 100644 index 000000000000..be1fa42fb176 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/alloc_comp_optional_1.f90 @@ -0,0 +1,31 @@ +! { dg-do run } +! Tests the fix for PR38602, a regression caused by a modification +! to the nulling of INTENT_OUT dummies with allocatable components +! that caused a segfault with optional arguments. +! +! Contributed by David Kinniburgh +! +program test_iso + type ivs + character(LEN=1), dimension(:), allocatable :: chars + end type ivs + type(ivs) :: v_str + integer :: i + call foo(v_str, i) + if (v_str%chars(1) .ne. "a") call abort + if (i .ne. 0) call abort + call foo(flag = i) + if (i .ne. 1) call abort +contains + subroutine foo (arg, flag) + type(ivs), optional, intent(out) :: arg + integer :: flag + if (present(arg)) then + arg = ivs([(char(i+96), i = 1,10)]) + flag = 0 + else + flag = 1 + end if + end subroutine +end +