[Bug preprocessor/14357] New: Line-terminating "\" eats following directive - sometimes.

igodard at pacbell dot net gcc-bugzilla@gcc.gnu.org
Mon Mar 1 08:29:00 GMT 2004


The following code:
#ifndef guardTypeTraits
#define guardTypeTraits

#if 0
    };\
#endif
#endif  //  guardTypeTraits
 int main() {}

gets:
~/ootbc/common/include$ gcc foo.cc
foo.cc:1:1: unterminated #ifndef

However, this code:
#ifndef X
#if 0
\
#endif
#endif

int main() {}


does not. I'm not sure whether the compiler is supposed to look at line concats inside #if'd out source, but it either should or should not in all cases.

Here's the -v output:

~/ootbc/common/include$ gcc -v foo.cc
Reading specs from /mnt/export/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.0/specs
Configured with: ./configure
Thread model: posix
gcc version 3.4.0 20040115 (experimental)
 /mnt/export/local/bin/../libexec/gcc/i686-pc-linux-gnu/3.4.0/cc1plus -quiet -v -iprefix /mnt/export/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.0/ -D_GNU_SOURCE foo.cc -quiet -dumpbase foo.cc -mtune=pentiumpro -auxbase foo -version -o /tmp/ccrW1tHN.s
ignoring nonexistent directory "/mnt/export/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.0/../../../../i686-pc-linux-gnu/include"
ignoring nonexistent directory "/usr/local/lib/../include/c++/3.4.0"
ignoring nonexistent directory "/usr/local/lib/../include/c++/3.4.0/i686-pc-linux-gnu"
ignoring nonexistent directory "/usr/local/lib/../include/c++/3.4.0/backward"
ignoring nonexistent directory "NONE/include"
ignoring nonexistent directory "/usr/local/lib/gcc/i686-pc-linux-gnu/3.4.0/include"
ignoring nonexistent directory "/usr/local/lib/../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /mnt/export/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.0/../../../../include/c++/3.4.0
 /mnt/export/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.0/../../../../include/c++/3.4.0/i686-pc-linux-gnu
 /mnt/export/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.0/../../../../include/c++/3.4.0/backward
 /mnt/export/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.0/include
 /usr/local/include
 /usr/include
End of search list.
GNU C++ version 3.4.0 20040115 (experimental) (i686-pc-linux-gnu)
        compiled by GNU C version 3.3.1 20030626 (Debian prerelease).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
foo.cc:1:1: unterminated #ifndef
~/ootbc/common/include$

-- 
           Summary: Line-terminating "\" eats following directive -
                    sometimes.
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: preprocessor
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: igodard at pacbell dot net
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14357



More information about the Gcc-bugs mailing list