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.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index 883141f..25658d7 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -1796,11 +1796,6 @@ gfc_match_actual_arglist (int sub_flag, gfc_actual_arglist **argp, bool pdt)
if (sub_flag && !pdt && gfc_match_char ('*') == MATCH_YES)
{
- if (pdt)
- {
- tail->spec_type = SPEC_ASSUMED;
- goto next;
- }
m = gfc_match_st_label (&label);
if (m == MATCH_NO)
gfc_error ("Expected alternate return label at %C");
@@ -1829,6 +1824,15 @@ gfc_match_actual_arglist (int sub_flag, gfc_actual_arglist **argp, bool pdt)
}
else
tail->spec_type = SPEC_EXPLICIT;
+
+ m = match_keyword_arg (tail, head, pdt);
+ if (m == MATCH_YES)
+ {
+ seen_keyword = 1;
+ goto next;
+ }
+ if (m == MATCH_ERROR)
+ goto cleanup;
}
/* After the first keyword argument is seen, the following