aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2016-03-01 09:22:51 -0700
committerJeff Law <law@gcc.gnu.org>2016-03-01 09:22:51 -0700
commit5e3f1c7c70181e8c687be4ccb0b40800ddce2a34 (patch)
tree369e091830519170953271a38331f30969a57eae
parente546907cd952ac97968b579b2bf6942e08b302ef (diff)
downloadgcc-5e3f1c7c70181e8c687be4ccb0b40800ddce2a34.zip
gcc-5e3f1c7c70181e8c687be4ccb0b40800ddce2a34.tar.gz
gcc-5e3f1c7c70181e8c687be4ccb0b40800ddce2a34.tar.bz2
re PR middle-end/69987 (internal compiler error: in verify_loop_structure, at cfgloop.c:1639)
PR tree-optimization/69987 * gfortran.dg/pr69987.f90: New test. PR tree-optimization/69989 * gcc.c-torture/compile/pr69989-2.c: New test. From-SVN: r233857
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr69989-2.c16
-rw-r--r--gcc/testsuite/gfortran.dg/pr69987.f9028
3 files changed, 52 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 27e134f..83a41c7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2016-02-29 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/69987
+ * gfortran.dg/pr69987.f90: New test.
+
+ PR tree-optimization/69989
+ * gcc.c-torture/compile/pr69989-2.c: New test.
+
2016-03-01 Marek Polacek <polacek@redhat.com>
PR c++/69795
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr69989-2.c b/gcc/testsuite/gcc.c-torture/compile/pr69989-2.c
new file mode 100644
index 0000000..39cd516
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr69989-2.c
@@ -0,0 +1,16 @@
+int a, b, d;
+short c[] = {4073709551611, 1, 4, 4};
+
+void fn1() {
+ if (a)
+ goto LABEL_vhvhP;
+ for (;;) {
+ for (; b; b++)
+ d = c[b + 3] | c[b];
+ LABEL_vhvhP:
+ if (d)
+ break;
+ }
+}
+
+int main() { return 0; }
diff --git a/gcc/testsuite/gfortran.dg/pr69987.f90 b/gcc/testsuite/gfortran.dg/pr69987.f90
new file mode 100644
index 0000000..6efc100
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr69987.f90
@@ -0,0 +1,28 @@
+! { dg-do compile }
+! { dg-options "-O3 -fprefetch-loop-arrays" }
+
+MODULE cp_lbfgs
+ INTEGER, PARAMETER :: dp=8
+CONTAINS
+ SUBROUTINE mainlb(n, m, x, l, u, nbd, f, g, factr, pgtol, ws, wy, &
+ csave, lsave, isave, dsave)
+ REAL(KIND=dp) :: x(n), l(n), u(n)
+ REAL(KIND=dp) :: f, g(n), factr, pgtol, ws(n, m), wy(n, m), sy(m, m), &
+ ss(m, m), wt(m, m), wn(2*m, 2*m), snd(2*m, 2*m), z(n), r(n), d(n), &
+ t(n), wa(8*m)
+ CHARACTER(len=60) :: task
+ IF (task == 'START') THEN
+ IF (task(1:5) == 'FG_LN') GOTO 666
+ ENDIF
+222 CONTINUE
+ DO 40 i = 1, n
+ d(i) = z(i) - x(i)
+40 ENDDO
+666 CONTINUE
+ IF (info /= 0 .OR. iback >= 20) THEN
+ CALL dcopy(n,r,1,g,1)
+ ENDIF
+ GOTO 222
+ END SUBROUTINE mainlb
+END MODULE cp_lbfgs
+