diff options
-rw-r--r-- | gcc/fortran/decl.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/unexp_attribute.f90 | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 52de1c11312..7d61fbf37af 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -5430,6 +5430,7 @@ add_hidden_procptr_result (gfc_symbol *sym) gfc_get_sym_tree ("ppr@", gfc_current_ns->parent, &stree, false); st2 = gfc_new_symtree (&gfc_current_ns->sym_root, "ppr@"); st2->n.sym = stree->n.sym; + stree->n.sym->refs++; } sym->result = stree->n.sym; diff --git a/gcc/testsuite/gfortran.dg/unexp_attribute.f90 b/gcc/testsuite/gfortran.dg/unexp_attribute.f90 new file mode 100644 index 00000000000..c39b4a9a3b6 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/unexp_attribute.f90 @@ -0,0 +1,8 @@ +! { dg-do compile } +! PR fortran/69498 +! This test used to result in an internal compiler error +function f() + interface + external f ! { dg-error "Unexpected attribute declaration statement in INTERFACE" } + end interface +end function |