diff options
author | Richard Biener <rguenther@suse.de> | 2015-06-01 13:58:50 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2015-06-01 13:58:50 +0000 |
commit | 633343a8594fb64dd9ffa7edc9191e1942cf23e3 (patch) | |
tree | 9be90c1eeabebf8dbc6174c342ef611958263ea0 /gcc | |
parent | 96a956b65a8222c3dc53b3c6ee327657c517255e (diff) | |
download | gcc-633343a8594fb64dd9ffa7edc9191e1942cf23e3.zip gcc-633343a8594fb64dd9ffa7edc9191e1942cf23e3.tar.gz gcc-633343a8594fb64dd9ffa7edc9191e1942cf23e3.tar.bz2 |
re PR tree-optimization/66349 (ICE on valid code at -O1, -O2 and -O3 on x86_64-linux-gnu in dfs_enumerate_from, at cfganal.c:1195)
2015-06-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/66349
PR tree-optimization/66352
PR tree-optimization/66357
* gcc.dg/torture/pr66357.c: New testcase.
* gcc.dg/torture/pr66349.c: Likewise.
* gfortran.fortran-torture/compile/pr66352.f90: Likewise.
From-SVN: r223980
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr66349.c | 31 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr66357.c | 26 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.fortran-torture/compile/pr66352.f90 | 18 |
4 files changed, 84 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2de41e5..70d2f1a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,14 @@ 2015-06-01 Richard Biener <rguenther@suse.de> + PR tree-optimization/66349 + PR tree-optimization/66352 + PR tree-optimization/66357 + * gcc.dg/torture/pr66357.c: New testcase. + * gcc.dg/torture/pr66349.c: Likewise. + * gfortran.fortran-torture/compile/pr66352.f90: Likewise. + +2015-06-01 Richard Biener <rguenther@suse.de> + Revert 2015-05-29 Richard Biener <rguenther@suse.de> diff --git a/gcc/testsuite/gcc.dg/torture/pr66349.c b/gcc/testsuite/gcc.dg/torture/pr66349.c new file mode 100644 index 0000000..8aa8c56 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr66349.c @@ -0,0 +1,31 @@ +/* { dg-do compile } */ + +unsigned int a; +int b, c, d, e, f; + +void +fn1 () +{ + for (; b; b++) + { + for (e = 0; e < 1; e++) + ; + int i = -1, j = 1; + if (f) + { + for (; a < 1; a++) + ; + i++; + j = 0; + } + for (; d; d++) + { + if (j) + for (;; c++) + ; + if (i) + continue; + return; + } + } +} diff --git a/gcc/testsuite/gcc.dg/torture/pr66357.c b/gcc/testsuite/gcc.dg/torture/pr66357.c new file mode 100644 index 0000000..4e574f9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr66357.c @@ -0,0 +1,26 @@ +/* { dg-do compile } */ + +int a, c, e, f; +volatile int d; + +void +fn1 () +{ + if (!e) + for (; a; a++) + { + if (e) + for (d++; d;) + ; + else + for (c = 0; c; --c) + ; + if (f) + for (;;) + { + if (e) + break; + a = 0; + } + } +} diff --git a/gcc/testsuite/gfortran.fortran-torture/compile/pr66352.f90 b/gcc/testsuite/gfortran.fortran-torture/compile/pr66352.f90 new file mode 100644 index 0000000..7d3c74a --- /dev/null +++ b/gcc/testsuite/gfortran.fortran-torture/compile/pr66352.f90 @@ -0,0 +1,18 @@ +! { dg-additional-options "-fprofile-generate" } + SUBROUTINE matmul_test ( ntim,len) + INTEGER, PARAMETER :: dp=8 + REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: ma, mb, mc + INTEGER :: siz,len, ntim + DO i = 5, siz, 2 + len = 2**i + 1 + ALLOCATE ( ma ( len, len ), STAT = ierr ) + IF ( ierr /= 0 ) EXIT + ALLOCATE ( mb ( len, len ), STAT = ierr ) + IF ( ierr /= 0 ) EXIT + ALLOCATE ( mc ( len, len ), STAT = ierr ) + IF ( ierr /= 0 ) EXIT + DO j = 1, ntim + mc = MATMUL ( ma, mb ) + END DO + END DO + END SUBROUTINE matmul_test |