> On 23 July 2013 23:32:27 pcha...@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 <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) > 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,
We found these by analysis tool using LLVM, but not so-fancy as scev one-linear. Of course, at very beginning we inspected the code manually. Thanks, -Chang