aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/primary.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/primary.c')
-rw-r--r--gcc/fortran/primary.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index f55e420..acde051 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -2964,7 +2964,8 @@ gfc_match_rvalue (gfc_expr **result)
st = gfc_enclosing_unit (NULL);
- if (st != NULL && st->state == COMP_FUNCTION
+ if (st != NULL
+ && st->state == COMP_FUNCTION
&& st->sym == sym
&& !sym->attr.recursive)
{
@@ -3268,6 +3269,7 @@ match_variable (gfc_expr **result, int equiv_flag, int host_flag)
of keywords, such as 'end', being turned into variables by
failed matching to assignments for, e.g., END INTERFACE. */
if (gfc_current_state () == COMP_MODULE
+ || gfc_current_state () == COMP_SUBMODULE
|| gfc_current_state () == COMP_INTERFACE
|| gfc_current_state () == COMP_CONTAINS)
host_flag = 0;