Hi,
The problem appears in revision 201034 in version 4.9. I attached a
one-line patch that fixes it. I also reported this problem
at http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57800
Bootstrap and regression-tested on x86_64-linux.
In method "gfc_match_call()" in gcc/fortran/match.c, the loop on line
4189 should break immediately after "i" is set to 1.
2013-07-22 Chang <pcha...@cs.wisc.edu>
* match.c (gfc_match_call): Exit loop after setting i.
Index: gcc/fortran/match.c
===================================================================
--- gcc/fortran/match.c (revision 201034)
+++ gcc/fortran/match.c (working copy)
@@ -4188,7 +4188,10 @@
i = 0;
for (a = arglist; a; a = a->next)
if (a->expr == NULL)
- i = 1;
+ {
+ i = 1;
+ break;
+ }
if (i)
{
-Chang
Index: gcc/fortran/match.c
===================================================================
--- gcc/fortran/match.c (revision 201034)
+++ gcc/fortran/match.c (working copy)
@@ -4188,7 +4188,10 @@
i = 0;
for (a = arglist; a; a = a->next)
if (a->expr == NULL)
- i = 1;
+ {
+ i = 1;
+ break;
+ }
if (i)
{