aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2015-06-01 13:58:50 +0000
committerRichard Biener <rguenther@suse.de>2015-06-01 13:58:50 +0000
commit7385355510c9528c55c304c3cd348d74ee2fba67 (patch)
tree9be90c1eeabebf8dbc6174c342ef611958263ea0
parent0ccdeae67db727bd814ff2edc4abf4dcc0ae4f0a (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/ChangeLog9
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr66349.c31
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr66357.c26
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/compile/pr66352.f9018
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