When diffing the code generated by my version of flex against Lexer.cpp.cvs, and excluding the #line directives, I get this:
23,24c23 < * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $ < * $FreeBSD: src/usr.bin/lex/flex.skl,v 1.8 2004/01/06 19:03:44 nectar Exp $ --- > * $Header: /var/cvs/llvm/llvm/lib/AsmParser/Lexer.cpp.cvs,v 1.22 2007/01/11 18:21:28 reid Exp $ 27,32d25 < #if defined(__FreeBSD__) < #include <sys/cdefs.h> < #else < #define __unused < #endif < 37a31 > #include <unistd.h> 51d44 < #include <unistd.h> 162a156,164 > /* Some routines like yy_flex_realloc() are emitted as static but are > not called by all lexers. This generates warnings in some compilers, > notably GCC. Arrange to suppress these. */ > #ifdef __GNUC__ > #define YY_MAY_BE_UNUSED __attribute__((unused)) > #else > #define YY_MAY_BE_UNUSED > #endif > 269c271 < static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) __unused; --- > static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED; 1178c1180 < register char *yy_cp, *yy_bp; --- > register char *yy_cp = NULL, *yy_bp = NULL; 1244,1245c1246 < goto find_rule; /* avoid `defined but not used' warning */ < find_rule: /* we branch to this label when backing up */ --- > 2396a2398 > #ifndef YY_NO_INPUT 2470c2472 < --- > #endif /* YY_NO_INPUT */ 2581,2585d2582 < #ifndef YY_ALWAYS_INTERACTIVE < #ifndef YY_NEVER_INTERACTIVE < extern int isatty YY_PROTO(( int )); < #endif < #endif FreeBSD has it's own solution to suppressing the warning: just throw in a gratuitous "goto find_rule". Looking at this diff, it looks like it may not be a good idea to catch the output of flex. It isn't as platform-independent as we'd like. Unfortunately, some platforms don't come with flex as standard equipment. No obvious easy solution. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits