From 518a0b783878a8e1056a79ff31f18170775530a3 Mon Sep 17 00:00:00 2001 From: Jerry DeLisle Date: Wed, 6 Jun 2007 01:21:29 +0000 Subject: [PATCH] re PR fortran/18923 (segfault after subroutine name confusion) 2007-06-05 Jerry DeLisle PR testsuite/18923 * gfortran.dg/invalid_contains_1.f90: New test. * gfortran.dg/invalid_contains_2.f90: New test. From-SVN: r125353 --- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/gfortran.dg/invalid_contains_1.f90 | 8 ++++++++ gcc/testsuite/gfortran.dg/invalid_contains_2.f90 | 9 +++++++++ 3 files changed, 23 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/invalid_contains_1.f90 create mode 100644 gcc/testsuite/gfortran.dg/invalid_contains_2.f90 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 58d3b778156..3990087283b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2007-06-05 Jerry DeLisle + + PR testsuite/18923 + * gfortran.dg/invalid_contains_1.f90: New test. + * gfortran.dg/invalid_contains_2.f90: New test. + 2007-06-05 Jerry DeLisle PR testsuite/32057 diff --git a/gcc/testsuite/gfortran.dg/invalid_contains_1.f90 b/gcc/testsuite/gfortran.dg/invalid_contains_1.f90 new file mode 100644 index 00000000000..757751d2427 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/invalid_contains_1.f90 @@ -0,0 +1,8 @@ +! { dg-do compile } +! PR18923 segfault after subroutine name confusion. +module FOO +contains + subroutine FOO ! { dg-error "conflicts with PROCEDURE" } + character(len=selected_int_kind(0)) :: C ! { dg-error "data declaration statement" } + end subroutine ! { dg-error "Expecting END MODULE statement" } +end ! { dg-warning "CONTAINS statement without FUNCTION" } \ No newline at end of file diff --git a/gcc/testsuite/gfortran.dg/invalid_contains_2.f90 b/gcc/testsuite/gfortran.dg/invalid_contains_2.f90 new file mode 100644 index 00000000000..90be10fd06d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/invalid_contains_2.f90 @@ -0,0 +1,9 @@ +! { dg-do compile } +! PR18923 segfault after subroutine name confusion. +program foo +contains + subroutine foo(i) ! { dg-error "conflicts with PROCEDURE" } + integer :: i ! { dg-error "data declaration statement" } + character(len=selected_int_kind(i)) :: c ! { dg-error "data declaration statement" } + end subroutine ! { dg-error "Expecting END PROGRAM statement" } +end program foo ! { dg-warning "CONTAINS statement without FUNCTION" }