aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2011-11-02 20:15:55 +0000
committerTom de Vries <vries@gcc.gnu.org>2011-11-02 20:15:55 +0000
commit24748eb48e44ae268686a795149edc03af0e4310 (patch)
treebb5d42cafb8cd95fa54f084081ac8087251b37b7 /gcc
parent19e5fa42c6233b2303eccabb594626f8fc8cef09 (diff)
downloadgcc-24748eb48e44ae268686a795149edc03af0e4310.zip
gcc-24748eb48e44ae268686a795149edc03af0e4310.tar.gz
gcc-24748eb48e44ae268686a795149edc03af0e4310.tar.bz2
re PR tree-optimization/50769 (ICE: in phi_alternatives_equal, at tree-cfgcleanup.c:355 with -O2 -fno-delete-null-pointer-checks -fno-guess-branch-probability -fipa-pta)
2011-11-02 Tom de Vries <tom@codesourcery.com> PR tree-optimization/50769 * gfortran.dg/pr50769.f90: New test. From-SVN: r180793
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr50769.f9030
2 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 92b5bef..56e9480 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 0000000..3a98543
--- /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
+