From 34d5d95884a2d6060098b9cd431360ea03416b69 Mon Sep 17 00:00:00 2001 From: Mikael Morin Date: Mon, 1 Dec 2008 20:30:55 +0100 Subject: [PATCH] re PR fortran/38252 (Empty function with CONTAINS triggers Internal Error) 2008-12-01 Mikael Morin PR fortran/38252 * parse.c (parse_spec): Skip statement order check in case of a CONTAINS statement. 2008-12-01 Mikael Morin PR fortran/38252 * gfortran.dg/empty_function_1.f90: New test. From-SVN: r142327 --- gcc/fortran/ChangeLog | 6 ++++ gcc/fortran/parse.c | 2 +- gcc/testsuite/ChangeLog | 5 ++++ .../gfortran.dg/empty_function_1.f90 | 30 +++++++++++++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/empty_function_1.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index d000a1ac513..732b0f7a497 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2008-12-01 Mikael Morin + + PR fortran/38252 + * parse.c (parse_spec): Skip statement order check in case + of a CONTAINS statement. + 2008-11-30 Daniel Kraft PR fortran/37779 diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index 7eb00278053..3e86a43d0b1 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -2338,7 +2338,7 @@ loop: { bool verify_now = false; - if (st == ST_END_FUNCTION) + if (st == ST_END_FUNCTION || st == ST_CONTAINS) verify_now = true; else { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 96138130093..b326f1895f1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-12-01 Mikael Morin + + PR fortran/38252 + * gfortran.dg/empty_function_1.f90: New test. + 2008-12-01 Uros Bizjak PR rtl-optimization/33642 diff --git a/gcc/testsuite/gfortran.dg/empty_function_1.f90 b/gcc/testsuite/gfortran.dg/empty_function_1.f90 new file mode 100644 index 00000000000..a9cc1859e22 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/empty_function_1.f90 @@ -0,0 +1,30 @@ +! { dg-do compile } +! +! PR fortran/38252 +! FUNCTION rejected if both specification and execution part are empty +! +! Contributed by Daniel Kraft + +INTEGER FUNCTION test () +CONTAINS +END FUNCTION test +! { dg-do compile } +! +! PR fortran/38252 +! FUNCTION rejected if both specification and execution part are empty +! +! Contributed by Daniel Kraft + +INTEGER FUNCTION test () +CONTAINS +END FUNCTION test +! { dg-do compile } +! +! PR fortran/38252 +! FUNCTION rejected if both specification and execution part are empty +! +! Contributed by Daniel Kraft + +INTEGER FUNCTION test () +CONTAINS +END FUNCTION test -- 2.30.2