From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26758 invoked by alias); 13 Jun 2002 19:36:05 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 26737 invoked by uid 71); 13 Jun 2002 19:36:05 -0000 Resent-Date: 13 Jun 2002 19:36:05 -0000 Resent-Message-ID: <20020613193605.26736.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, ted@arraycomm.com Received: (qmail 22814 invoked by uid 61); 13 Jun 2002 19:29:19 -0000 Message-Id: <20020613192919.22813.qmail@sources.redhat.com> Date: Thu, 13 Jun 2002 12:36:00 -0000 From: ted@arraycomm.com Reply-To: ted@arraycomm.com To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: preprocessor/7022: #line in .i files is broken in gcc 3.1 X-SW-Source: 2002-06/txt/msg00312.txt.bz2 List-Id: >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 # 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: