From: Jeff Law Date: Tue, 1 Mar 2016 16:22:51 +0000 (-0700) Subject: re PR middle-end/69987 (internal compiler error: in verify_loop_structure, at cfgloop... X-Git-Tag: basepoints/gcc-7~665 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5e3f1c7c70181e8c687be4ccb0b40800ddce2a34;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 27e134fa8a4f..83a41c762a0a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2016-02-29 Jeff Law + + 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 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 000000000000..39cd51680f67 --- /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 000000000000..6efc100d9039 --- /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 +