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

Reply via email to