This is the mail archive of the gcc@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]

cpp, CPLUS_INCLUDE_PATH, and g++: bug or feature?


Consider the following program, which resides in a directory different
from $HOME.  Call it test.c, and put an empty test.h into $HOME.

  #include "test.h"
  #include <stdio.h>

  int main() { printf("hi"); }

If one tries to compile this, GCC issues an error (So far so good):

  % gcc x.c
  x.c:1:18: test.h: No such file or directory

So I set C_INCLUDE_PATH accordingly and, still as expected, get:

  % export C_INCLUDE_PATH=$HOME ; gcc x.c
  %

However, once I use the g++ driver to compile this program the error
is back:

  % g++ x.c
  x.c:1:18: test.h: No such file or directory

Which I believe contradicts the following from cppenv.texi, since even
though we use the g++ driver, the program still is compiled as C input:

  The[se] environment variables apply only when preprocessing the
  particular language indicated. 

Interestingly, though, the preprocessor does set __cplusplus, so it
seems g++ preprocesses .c files as C++, but then compiles them as C.

Feature, bug, or potential to improve documentation?

Gerald


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