------- 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