[Patch, PR 57800] Waste work in gfc_match_call()

Bernhard Reutner-Fischer rep.dot.nop@gmail.com
Wed Jul 24 16:08:00 GMT 2013


On 23 July 2013 23:32:27 pchang9@cs.wisc.edu wrote:
> 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  <pchang9@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)
    for (a = arglist; a || i; a = a->next)

Sounds more reasonable to me.

To repeat the previous question, curious how you get at these? scev one-liner?

Thanks,

>      if (a->expr == NULL)
> -      i = 1;
> +      {
> +	i = 1;
> +	break;
> +      }
>
>    if (i)
>      {
>
> -Chang


Sent with AquaMail for Android
http://www.aqua-mail.com




More information about the Gcc-patches mailing list