This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

preprocessor/7022: #line in .i files is broken in gcc 3.1


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]