Bug in CPP Causes Duplicate Output Lines (3.3.1/cygming special)

Yong Lu lyongu+@cs.cmu.edu
Wed Jan 7 22:26:00 GMT 2004


1. GCC version.

$ gcc -v
Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/specs
Configured with: /GCC/gcc-3.3.1-3/configure --with-gcc --with-gnu-ld --with-gnu-as --prefix=/usr --e
xec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/sbin --mandir=/usr/share/man -
-infodir=/usr/share/info --enable-languages=c,ada,c++,f77,pascal,java,objc --enable-libgcj --enable-
threads=posix --with-system-zlib --enable-nls --without-included-gettext --enable-interpreter --enab
le-sjlj-exceptions --disable-version-specific-runtime-libs --enable-shared --disable-win32-registry
--enable-java-gc=boehm --disable-hash-synchronization --verbose --target=i686-pc-cygwin --host=i686-
pc-cygwin --build=i686-pc-cygwin
Thread model: posix
gcc version 3.3.1 (cygming special)


2. Windows XP with Cygwin:

  949k 2003/09/20 C:\cygwin\bin\cygwin1.dll
    Cygwin DLL version info:
        DLL version: 1.5.5
        DLL epoch: 19
        DLL bad signal mask: 19005
        DLL old termios: 5
        DLL malloc env: 28
        API major: 0
        API minor: 94
        Shared data: 3
        DLL identifier: cygwin1
        Mount registry: 2
        Cygnus registry name: Cygnus Solutions
        Cygwin registry name: Cygwin
        Program options name: Program Options
        Cygwin mount registry name: mounts v2
        Cygdrive flags: cygdrive flags
        Cygdrive prefix: cygdrive prefix
        Cygdrive default prefix:
        Build date: Sat Sep 20 16:31:15 EDT 2003
        CVS tag: cr-0x9b
        Shared id: cygwin1S3

Package Information:

gcc                     3.3.1-3
gcc-ada                 3.3.1-3
gcc-g++                 3.3.1-3
gcc-g77                 3.3.1-3
gcc-mingw               20030911-4
gcc-mingw-ada           20031020-1
gcc-mingw-core          20031020-1
gcc-mingw-g++           20031020-1
gcc-mingw-g77           20031020-1

3. GCC configuration:

Configured with: /GCC/gcc-3.3.1-3/configure --with-gcc --with-gnu-ld --with-gnu-as --prefix=/usr --e
xec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/sbin --mandir=/usr/share/man -
-infodir=/usr/share/info --enable-languages=c,ada,c++,f77,pascal,java,objc --enable-libgcj --enable-
threads=posix --with-system-zlib --enable-nls --without-included-gettext --enable-interpreter --enab
le-sjlj-exceptions --disable-version-specific-runtime-libs --enable-shared --disable-win32-registry
--enable-java-gc=boehm --disable-hash-synchronization --verbose --target=i686-pc-cygwin --host=i686-
pc-cygwin --build=i686-pc-cygwin
Thread model: posix

4. Command line that triggers the bug:

$ gcc -v -save-temps -I. -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0400 -D_X86_=1 -g -mno-cygwin -mcpu
=i686 -O2  -Di386 -D_CRTAPI1=_cdecl  -DXPM_NO_X -U_FILE_DEFINED -Demacs=1 -DWINDOWSNT -DDOS_NT -DHA
VE_CONFIG_H -I../nt/inc -D_UCHAR_T -DHAVE_NTGUI=1 -DUSE_CRT_DLL=1 -DPURESIZE=5000000 -c emacs.c

5. Output.

 /usr/lib/gcc-lib/i686-pc-mingw32/3.3.1/cc1.exe -E -quiet -v -I. -I../nt/inc -D__GNUC__=3 -D__GNUC_M
INOR__=3 -D__GNUC_PATCHLEVEL__=1 -D__MSVCRT__ -D__MINGW32__ -DWIN32 -D_WIN32 -D__WIN32 -D__WIN32__ -
DWINNT -idirafter /usr/lib/gcc-lib/i686-pc-mingw32/3.3.1/../../../../include/w32api -idirafter /usr/
lib/gcc-lib/i686-pc-mingw32/3.3.1/../../../../i686-pc-mingw32/lib/../../include/w32api -DWIN32_LEAN_
AND_MEAN -D_WIN32_WINNT=0x0400 -D_X86_=1 -Di386 -D_CRTAPI1=_cdecl -DXPM_NO_X -U_FILE_DEFINED -Demacs
=1 -DWINDOWSNT -DDOS_NT -DHAVE_CONFIG_H -D_UCHAR_T -DHAVE_NTGUI=1 -DUSE_CRT_DLL=1 -DPURESIZE=5000000
 emacs.c -mno-cygwin -mcpu=i686 -O2 emacs.i
ignoring nonexistent directory "/usr/local/include/mingw"
ignoring duplicate directory "/usr/include/mingw"
ignoring duplicate directory "/usr/i686-pc-mingw32/lib/../../include/w32api"
#include "..." search starts here:
#include <...> search starts here:
 .
 ../nt/inc
 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/include
 /usr/i686-pc-mingw32/include
 /usr/include/w32api
End of search list.
 /usr/lib/gcc-lib/i686-pc-mingw32/3.3.1/cc1.exe -fpreprocessed emacs.i -quiet -dumpbase emacs.c -mno
-cygwin -mcpu=i686 -auxbase emacs -g -O2 -version -o emacs.s
GNU C version 3.3.1 (cygming special) (i686-pc-cygwin)
        compiled by GNU C version 3.3.1 (cygming special).
GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=130941
In file included from s/ms-w32.h:394,
                 from config.h:292,
                 from emacs.c:23:
/usr/i686-pc-mingw32/include/stdio.h:388: error: syntax error before '*' token

6. The preprocessed file (please see the attachment).  Line 478 in the
   preprocessed file triggers the 'syntax error'.  Lines 475 to 478
   are duplicates of lines 462 to 465, and as the result line 478 is
   incorrectly expanded using a macro definition.


Yong Lu

--------------------------
Ph.D. Student
Computer Science Department
Carnegie Mellon University
5000 Forbes Avenue
Pittsburgh, PA 15213-3891

-------------- next part --------------
A non-text attachment was scrubbed...
Name: emacs.i.gz
Type: application/octet-stream
Size: 80611 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-bugs/attachments/20040107/e8f0d337/attachment.obj>


More information about the Gcc-bugs mailing list