aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2015-10-29 17:23:52 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2015-10-29 17:23:52 +0000
commit721be0f47c5c0bb994af6df6f2e2793f9bd13ee3 (patch)
treeae4fa32ce8f0b772d60ee73ba7796e58e8bfb990 /gcc/fortran
parent730f6d14253f7c8f44eff8c03beb5984e2f4c6cf (diff)
downloadgcc-721be0f47c5c0bb994af6df6f2e2793f9bd13ee3.zip
gcc-721be0f47c5c0bb994af6df6f2e2793f9bd13ee3.tar.gz
gcc-721be0f47c5c0bb994af6df6f2e2793f9bd13ee3.tar.bz2
re PR fortran/68054 (ICE on using protected attribute in program without program statement)
2015-10-29 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/68054 * decl.c (match_attr_spec): PROTECTED can only be a module. 2015-10-29 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/68054 * gfortran.dg/pr68054.f90: New test. From-SVN: r229542
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/decl.c4
2 files changed, 8 insertions, 1 deletions
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 <kargl@gcc.gnu.org>
+ PR fortran/68054
+ * decl.c (match_attr_spec): PROTECTED can only be a module.
+
+2015-10-29 Steven G. Kargl <kargl@gcc.gnu.org>
+
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");