summaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index fd365eb136a..f208f406626 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -6958,7 +6958,6 @@ resolve_ordinary_assign (gfc_code *code, gfc_namespace *ns)
&& (lhs->symtree->n.sym == (*rhsptr)->symtree->n.sym))
*rhsptr = gfc_get_parentheses (*rhsptr);
- resolve_code (code, ns);
return true;
}
@@ -7190,7 +7189,12 @@ resolve_code (gfc_code *code, gfc_namespace *ns)
break;
if (resolve_ordinary_assign (code, ns))
- goto call;
+ {
+ if (code->op == EXEC_COMPCALL)
+ goto compcall;
+ else
+ goto call;
+ }
break;
@@ -7241,6 +7245,7 @@ resolve_code (gfc_code *code, gfc_namespace *ns)
break;
case EXEC_COMPCALL:
+ compcall:
resolve_typebound_call (code);
break;