I got the following error (in gnulib) building coreutils 6.6 on HP-UX.
source='fts.c' object='fts.o' libtool=no \ DEPDIR=.deps depmode=hp /bin/sh ../build-aux/depcomp \ cc -I. -I/home/install/gnu/hp700_hpux/include -g -c fts.c cc: "fts.c", line 734: error 1654: Expression type is too large for switch expression. cc: "fts.c", line 736: error 1653: Case label too big for the type of the switch expression cc: "fts.c", line 739: error 1653: Case label too big for the type of the switch expression
I'm suggesting the following patch (formed by hand, sorry if the line numbers are off!):
diff -ur lib/fts.c --- lib/fts.c +++ lib/fts.c @@ -731,16 +731,10 @@ check_for_dir: if (p->fts_info == FTS_NSOK) { - switch (p->fts_statp->st_size) - { - case FTS_STAT_REQUIRED: - p->fts_info = fts_stat(sp, p, false); - break; - case FTS_NO_STAT_REQUIRED: - break; - default: - abort (); - } + if (p->fts_statp->st_size == FTS_STAT_REQUIRED) + p->fts_info = fts_stat(sp, p, false); + else if (p->fts_statp->st_size != FTS_NO_STAT_REQUIRED) + abort (); } sp->fts_cur = p; if (p->fts_info == FTS_D)
-- Matthew "Two IIRC's must make a right" -- Larry Hall (paraphrased)