From 8371b2e9d074a51fd7bd5a44d73244e233166cfb Mon Sep 17 00:00:00 2001 From: kargl Date: Thu, 29 Oct 2015 17:23:52 +0000 Subject: [PATCH] 2015-10-29 Steven G. Kargl PR fortran/68054 * decl.c (match_attr_spec): PROTECTED can only be a module. 2015-10-29 Steven G. Kargl PR fortran/68054 * gfortran.dg/pr68054.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229542 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/decl.c | 4 +++- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/pr68054.f90 | 8 ++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/pr68054.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 5aed4bd..587045d 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,10 @@ 2015-10-29 Steven G. Kargl + PR fortran/68054 + * decl.c (match_attr_spec): PROTECTED can only be a module. + +2015-10-29 Steven G. Kargl + PR fortran/67885 * trans-decl.c (generate_local_decl): Mark PARAMETER entities in BLOCK construct. diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 5c34dc9..6a7f386 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -3959,7 +3959,9 @@ match_attr_spec (void) break; case DECL_PROTECTED: - if (gfc_current_ns->proc_name->attr.flavor != FL_MODULE) + if (gfc_current_state () != COMP_MODULE + || (gfc_current_ns->proc_name + && gfc_current_ns->proc_name->attr.flavor != FL_MODULE)) { gfc_error ("PROTECTED at %C only allowed in specification " "part of a module"); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ee3ac60..0ec4102 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2015-10-29 Steven G. Kargl + PR fortran/68054 + * gfortran.dg/pr68054.f90: New test. + +2015-10-29 Steven G. Kargl + PR fortran/67885 * gfortran.dg/pr67885.f90: New test. diff --git a/gcc/testsuite/gfortran.dg/pr68054.f90 b/gcc/testsuite/gfortran.dg/pr68054.f90 new file mode 100644 index 0000000..c4b6a34 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr68054.f90 @@ -0,0 +1,8 @@ +! { dg-do compile } +! PR fortran/68054 +! Original code contributed by Gerhard Steinmetz +! gerhard dot steinmetz dot fortran at t-online dot de +! +!program p + real, protected :: x ! { dg-error "only allowed in specification" } +end -- 2.7.4