diff options
author | David Malcolm <dmalcolm@redhat.com> | 2020-02-17 03:28:08 -0500 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2020-02-18 08:09:29 -0500 |
commit | 68f9c41d54a7839e90d10e1400c8726c8ccde88d (patch) | |
tree | f55300e2630784fca1aab4d1f07bc61b91183a4f | |
parent | 8f55a0eec910dd02992f4caca083048d91c0b2e1 (diff) | |
download | gcc-68f9c41d54a7839e90d10e1400c8726c8ccde88d.zip gcc-68f9c41d54a7839e90d10e1400c8726c8ccde88d.tar.gz gcc-68f9c41d54a7839e90d10e1400c8726c8ccde88d.tar.bz2 |
analyzer: add test coverage for gfortran ICE fix [PR 93779]
PR analyzer/93779 reports an ICE in gfortran with -fanalyzer
that was fixed for GCC 10 by a workaround in
f76a88ebf089871dcce215aa0cb1956ccc060895; the tree code in
question is a FUNCTION_DECL.
Given that I want to rework the above patch at some point, it seems
prudent to add test coverage to ensure the ICE doesn't come back,
which this patch does.
gcc/testsuite/ChangeLog:
PR analyzer/93779
* gfortran.dg/analyzer/pr88304-2.f90: New test, adapted from
gfortran.fortran-torture/compile/pr88304-2.f90
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/analyzer/pr88304-2.f90 | 29 |
2 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f9a545e..c6b76df 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2020-02-18 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/93779 + * gfortran.dg/analyzer/pr88304-2.f90: New test, adapted from + gfortran.fortran-torture/compile/pr88304-2.f90 + 2020-02-18 Mark Eggleston <mark.eggleston@codethink.com> PR fortran/93603 diff --git a/gcc/testsuite/gfortran.dg/analyzer/pr88304-2.f90 b/gcc/testsuite/gfortran.dg/analyzer/pr88304-2.f90 new file mode 100644 index 0000000..6b3ab89 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/analyzer/pr88304-2.f90 @@ -0,0 +1,29 @@ +! Copy of gfortran.fortran-torture/compile/pr88304-2.f90 +! as a regression test for ICE with -fanalyzer (PR analyzer/93779) + +module pr88304 + implicit none + integer :: p +contains + function foo (x, y, z, w) + integer, intent(in) :: x, y + character(*), optional, intent(out) :: z + integer, optional, intent(out) :: w + integer :: foo + foo = 1 + end function foo + subroutine bar () + integer :: s + s = baz (1) + contains + function baz (u) + integer, intent(in) :: u + integer :: baz + integer :: q + integer :: r (10) + r = 0 + baz = 1 + q = foo (p, r(u), w = baz) + end function baz + end subroutine bar +end module pr88304 |