preprocessor/7022: #line in .i files is broken in gcc 3.1
ted@arraycomm.com
ted@arraycomm.com
Thu Jun 13 12:47:00 GMT 2002
>Number: 7022
>Category: preprocessor
>Synopsis: #line in .i files is broken in gcc 3.1
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Jun 13 12:36:04 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Ted Merrill
>Release: gcc-3.1
>Organization:
>Environment:
Sparc solaris
>Description:
gcc-3.1 chokes on #line directive in a pre-processed (.i)
file. This worked in gcc-3.0.4 and earlier.
We make heavy use of a tool that modifies C code
after passing through the preprocessor.
We can modify the tool to work around this bug
(by producing the # number format...)
but it would still be nice to get this fixed.
>How-To-Repeat:
E.g. the following:
#line 1 "mainfile.c"
int x;
#line 23 "specialfile"
int y;
produces the following (with -v option):
Reading specs from /opt/local/gnu/gcc3-64/lib/gcc-lib/sparc64-sun-solaris2.8/3.1/specs
Configured with: ../gcc-3.1/configure --prefix=/opt/local/gnu/gcc3-64 --enable-languages=c,c++ --enable-threads=posix --verbose --enable-long-long --enable-shared --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --with-cpu=ultrasparc --disable-nls sparc64-sun-solaris2.8
Thread model: posix
gcc version 3.1
/opt/local/gnu/gcc3-64/lib/gcc-lib/sparc64-sun-solaris2.8/3.1/cc1 -fpreprocessed ilinebug2.i -quiet -dumpbase ilinebug2.i -version -o /var/tmp//ccILGXxb.s
GNU CPP version 3.1 (cpplib) (sparc ELF)
GNU C version 3.1 (sparc64-sun-solaris2.8)
compiled by GNU C version 3.1.
ilinebug2.i:1: syntax error at '#' token
ilinebug2.i:1: parse error before numeric constant
ilinebug2.i:4: syntax error at '#' token
>Fix:
I think there are two areas in the source code that need a
fix. Most importantly, there is some problem with generic
#line handling that i have not figured out.
Secondarily, there is code to peek at the first line of a
file for a # <number> directive, which is clearly broken
since it does not check for #line ... if this never
got fixed it would be no big deal.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list