diff options
author | Richard Biener <rguenther@suse.de> | 2015-06-01 13:58:50 +0000 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2015-06-01 13:58:50 +0000 |
commit | 7385355510c9528c55c304c3cd348d74ee2fba67 (patch) | |
tree | 9be90c1eeabebf8dbc6174c342ef611958263ea0 | |
parent | 0ccdeae67db727bd814ff2edc4abf4dcc0ae4f0a (diff) |
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.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@223980 138bc75d-0d04-0410-961f-82ee72b054a4
-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 2de41e59ba2..70d2f1afcd5 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 00000000000..8aa8c56beff --- /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 00000000000..4e574f9de53 --- /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 00000000000..7d3c74acd96 --- /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 |