diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 92b5bef129b3599f08aa89764926495dc5ba0dd6..56e9480854975c1f67122c12f06025fa0e9cfe84 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-11-02 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/50769 + * gfortran.dg/pr50769.f90: New test. + 2011-11-02 Eric Botcazou <ebotcazou@adacore.com> * gcc.target/sparc/20111102-1.c: New test. diff --git a/gcc/testsuite/gfortran.dg/pr50769.f90 b/gcc/testsuite/gfortran.dg/pr50769.f90 new file mode 100644 index 0000000000000000000000000000000000000000..3a98543e3a6569817867fad31c689f6a0d846c45 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr50769.f90 @@ -0,0 +1,30 @@ +! { dg-do compile } +! { dg-options "-O2 -ftree-tail-merge -fno-delete-null-pointer-checks -fno-guess-branch-probability" } +! +! based on testsuite/gfortran.dg/alloc_comp_optional_1.f90, +! which was contributed by David Kinniburgh <davidkinniburgh@yahoo.co.uk> +! +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 +