------- Comment #10 from pinskia at gcc dot gnu dot org 2006-05-13 22:06 ------- Here is the reduced testcase as I could get it (LL20 is not recorded here as being used): typedef struct _IO_FILE FILE; extern char const *RCSname; extern struct rcslock *Locks; extern struct hshentry * Head; struct Revpairs{ struct Revpairs * rnext; }; static void getrevpairs (char*); static int branchflag; static struct Revpairs *revlist, *Revlst; char *t; int main (int argc, char **argv) { FILE *out; char *a, **newargv; struct Datepairs *currdate; int descflag, selectflag; int onlylockflag; int onlyRCSflag; int shownames; descflag = selectflag = shownames = 1; onlylockflag = onlyRCSflag = 0; while (a = *++argv, 0<--argc) { switch (*a++) { case 'L': onlylockflag = 1; case 'N': shownames = 0; case 'R': t = a; case 'b': branchflag = 1; case 'r': getrevpairs(a); } if (onlylockflag && !Locks) aprintf(out, "%s\n", RCSname); if (shownames) while( currdate) recentdate(Head, currdate); } } void getrevpairs(char *argv) { char c; struct Revpairs * nextrevpair; int separator; if (strchr(argv,':')) separator = ':'; else { if (strchr(argv,'-') ) warn("`-' is obsolete in `-r%s'; use `:' instead", argv); separator = '-'; } for (;;) { nextrevpair->rnext = revlist; for (;; c = *++argv) { switch (c) { default: continue; case ' ': case '\t': case '\n': break; case ':': case '-': if (c == separator) continue; } break; } if (!c) break; error("missing `,' near `%c%s'", c, argv+1); } }
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27531