diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index d000a1ac513d..732b0f7a497e 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 7eb002780533..3e86a43d0b13 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 96138130093e..b326f1895f1a 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 000000000000..a9cc1859e225 --- /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