Your message dated Wed, 19 Mar 2008 04:17:02 +0000 with message-id <[EMAIL PROTECTED]> and subject line Bug#466793: fixed in flex 2.5.35-1 has caused the Debian Bug report #466793, regarding flex: new lint in YY_INPUT definition to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact [EMAIL PROTECTED] immediately.) -- 466793: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=466793 Debian Bug Tracking System Contact [EMAIL PROTECTED] with problems
--- Begin Message ---Package: flex Version: 2.5.34-3 Severity: normal I started getting new warnings from the C compile phase of lexers as of 2.5.34, which I verified showed up in the transition from 2.5.33-12 to 2.5.34-1. The warnings are: warning: comparison between signed and unsigned integer expressions I tracked it down to a change in the definition of the YY_INPUT macro. Any gcc-4.2 or gcc-4.3 compiler will detect the problem. To reproduce, start with a very simple example.lex: %option nounput %{ extern int keyword(const char *str, unsigned len); %} %% [a-zA-Z_][a-zA-Z0-9$_]* { return keyword(yytext, yyleng); } %% Then build: flex -o example.cc example.lex gcc -Wall example.cc -c The warning that pops out when using lex-2.5.34 is example.cc: In function 'int yy_get_next_buffer()': example.cc:934: warning: comparison between signed and unsigned integer expressions It's easy to see the fault in example.cc. In both flex versions, YY_INPUT is used as YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]) (yy_n_chars), (size_t) num_to_read ); Note that the third argument is of type (size_t). The old, lint-free definition of YY_INPUT starts #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ size_t n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ but the new definition changes the declaration of n to int n; which not only generates a warning for the comparison n < max_size, it's a real mistake. It took me some effort to isolate and analyze to this point. I started trying to find the origin of the problem in the flex code base, but quickly found myself in over my head. I hope you can take it from here. -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.24-1-amd64 (SMP w/1 CPU core) Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) Shell: /bin/sh linked to /bin/bash Versions of packages flex depends on: ii debconf [debconf-2.0] 1.5.19 Debian configuration management sy ii libc6 2.7-8 GNU C Library: Shared libraries ii m4 1.4.10-1 a macro processing language Versions of packages flex recommends: ii gcc [c-compiler] 4:4.2.2-2 The GNU C compiler ii gcc-4.0 [c-compiler] 4.0.3-7 The GNU C compiler ii gcc-4.2 [c-compiler] 4.2.3-1 The GNU C compiler ii gcc-4.3 [c-compiler] 4.3-20080202-1 The GNU C compiler -- debconf information excluded
--- End Message ---
--- Begin Message ---Source: flex Source-Version: 2.5.35-1 We believe that the bug you reported is fixed in the latest version of flex, which is due to be installed in the Debian FTP archive: flex-doc_2.5.35-1_all.deb to pool/main/f/flex/flex-doc_2.5.35-1_all.deb flex_2.5.35-1.diff.gz to pool/main/f/flex/flex_2.5.35-1.diff.gz flex_2.5.35-1.dsc to pool/main/f/flex/flex_2.5.35-1.dsc flex_2.5.35-1_amd64.deb to pool/main/f/flex/flex_2.5.35-1_amd64.deb flex_2.5.35.orig.tar.gz to pool/main/f/flex/flex_2.5.35.orig.tar.gz A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to [EMAIL PROTECTED], and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Manoj Srivastava <[EMAIL PROTECTED]> (supplier of updated flex package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing [EMAIL PROTECTED]) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Format: 1.7 Date: Tue, 18 Mar 2008 21:05:33 -0500 Source: flex Binary: flex flex-doc Architecture: source all amd64 Version: 2.5.35-1 Distribution: unstable Urgency: low Maintainer: Manoj Srivastava <[EMAIL PROTECTED]> Changed-By: Manoj Srivastava <[EMAIL PROTECTED]> Description: flex - A fast lexical analyzer generator. flex-doc - Documentation for flex (a fast lexical analyzer generator). Closes: 443559 466793 Changes: flex (2.5.35-1) unstable; urgency=low . * New upstream release, Mostly fixes made in NMU in Debian, plus a few translation updates. * NEWS: add date of release * NEWS, parse.y: fix bug that prevented comments from working properly * po/de.po: new de translation * NEWS, po/vi.po: new vi translation * NEWS, po/nl.po: new nl translation * NEWS, po/pl.po: new pl translation * NEWS, po/de.po, po/pt_BR.po: new de, pt_br translations * NEWS, flex.skl: generate headers for all functions (resolves bug #1628314) * NEWS, flex.skl: change yy_size_t to be size_t (resolves bug #1849812) * configure.in: start work on version 2.5.35 * NEWS, configure.in: revert NEWS and configure.in to version * NEWS, configure.in: update version number to 2.5.35 * tests/test-alloc-extra/scanner.l: Use %option extra-type. * NEWS, flex.skl, flexdef.h, main.c, parse.y, scan.l, doc/flex.texi: Introduce %option extra-type="your_type *" (resolves bug #1744505). * po/nl.po: new nl translations from the translation project * Bug fix: "flex: new lint in YY_INPUT definition", thanks to Larry Doolittle. Closes: #466793 * Bug fix: "flex: limits of integral types are always defined", thanks to Jean-Baptiste Note. It is true that the limits are defined by the standard, and present in stdint.h, and so flex should not define them on C99 systems, Closes: #443559 Files: eae40b31a6b8e7bdc355692b6649b735 793 devel standard flex_2.5.35-1.dsc 201d3f38758d95436cbc64903386de0b 1456620 devel standard flex_2.5.35.orig.tar.gz 72e3ecd3a9888b655d6edf72a7aa3434 31923 devel standard flex_2.5.35-1.diff.gz 7da76cd5cb84ae98c57e7ea24999f6dc 200382 doc optional flex-doc_2.5.35-1_all.deb 4ff771588406293fd4e7e80e0b7b001b 327802 devel standard flex_2.5.35-1_amd64.deb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFH4I4dIbrau78kQkwRApiuAKDwC6Cqwkh3qUKYQzTdx6qx6tz7zwCfQna7 qnLp3nF/xiP98+YHn3ZoO08= =b/Eb -----END PGP SIGNATURE-----
--- End Message ---

