diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5783d609aaf55090328ced630d62a0e1d10d1834..a953cd380908c5d1fe85ed8fb89f85194b4c1198 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2003-03-02 Ashif Harji <asharji@uwaterloo.ca> + + * gcc.c (default_compilers): Add -no-integrated-cpp flag to invoke + an external cpp during compilation. + (option_map): Likewise. + * objc/lang-specs.h (default_compilers): Similarly. + * doc/invoke.texi: Document -no-integrated-cpp flag. + 2003-03-02 Kazu Hirata <kazu@cs.umass.edu> * config/h8300/h8300.md (zero_extendqisi2): Change to an diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 25e6f1e6bf64391ad72e130a9bf457d016e3bc14..30efcf37464516f8f744746d8a4b14347308a3ee 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2003-03-02 Ashif Harji <asharji@uwaterloo.ca> + + * lang-specs.h (default_compilers): Add -no-integrated-cpp flag to + invoke an external cpp during compilation. + 2003-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net> * decl.c (duplicate_decls): Convert use of warning_with_decl() to diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h index cf4ca4cee36005ff2d1d101de61c080f647b97d6..229164445b7da099cfca6b6d7f83101abde589d7 100644 --- a/gcc/cp/lang-specs.h +++ b/gcc/cp/lang-specs.h @@ -50,10 +50,10 @@ Boston, MA 02111-1307, USA. */ "%{E|M|MM:cc1plus -E %{!no-gcc:-D__GNUG__=%v1}\ %(cpp_options) %2 %(cpp_debug_options)}\ %{!E:%{!M:%{!MM:\ - %{save-temps:cc1plus -E %{!no-gcc:-D__GNUG__=%v1}\ - %(cpp_options) %2 %b.ii \n}\ - cc1plus %{save-temps:-fpreprocessed %b.ii}\ - %{!save-temps:%(cpp_unique_options) %{!no-gcc:-D__GNUG__=%v1}}\ + %{save-temps|no-integrated-cpp:cc1plus -E %{!no-gcc:-D__GNUG__=%v1}\ + %(cpp_options) %2 %{save-temps:%b.ii} %{!save-temps:%g.ii} \n}\ + cc1plus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.ii} %{!save-temps:%g.ii}}\ + %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options) %{!no-gcc:-D__GNUG__=%v1}}}\ %(cc1_options) %2 %{+e1*}\ %{!fsyntax-only:%(invoke_as)}}}}", CPLUSPLUS_CPP_SPEC}, diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 755d0dd54aa44c6854971674c2cf0867c0d67a7c..22d0ffc62f6d95797c576f472266070fa7f75dc3 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -166,7 +166,7 @@ in the following sections. -ansi -std=@var{standard} -aux-info @var{filename} @gol -fno-asm -fno-builtin -fno-builtin-@var{function} @gol -fhosted -ffreestanding -fms-extensions @gol --trigraphs -traditional -traditional-cpp @gol +-trigraphs -no-integrated-cpp -traditional -traditional-cpp @gol -fallow-single-precision -fcond-mismatch @gol -fsigned-bitfields -fsigned-char @gol -funsigned-bitfields -funsigned-char @gol @@ -1198,6 +1198,17 @@ Accept some non-standard constructs used in Microsoft header files. Support ISO C trigraphs. The @option{-ansi} option (and @option{-std} options for strict ISO C conformance) implies @option{-trigraphs}. +@item -no-integrated-cpp +@opindex no-integrated-cpp +Performs a compilation in two passes: preprocessing and compiling. This +option allows a user supplied "cc1", "cc1plus", or "cc1obj" via the +@option{-B} option. The user supplied compilation step can then add in +an additional preprocessing step after normal preprocessing but before +compiling. The default is to use the integrated cpp (internal cpp) + +The semantics of this option will change if "cc1", "cc1plus", and +"cc1obj" are merged. + @cindex traditional C language @cindex C language, traditional @item -traditional diff --git a/gcc/gcc.c b/gcc/gcc.c index db37242dd0c4c8ebeda60653aee060890debace5..a07bd9c6f8ac3e1b0a088e9fdf1b11be49cc24ba 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -911,11 +911,11 @@ static const struct compiler default_compilers[] = %{!E:%{!M:%{!MM:\ %{traditional|ftraditional:\ %eGNU C no longer supports -traditional without -E}\ - %{save-temps|traditional-cpp:%(trad_capable_cpp) \ - %(cpp_options) %b.i \n\ - cc1 -fpreprocessed %b.i %(cc1_options)}\ - %{!save-temps:%{!traditional-cpp:\ - cc1 %(cpp_unique_options) %(cc1_options)}}\ + %{save-temps|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \ + %(cpp_options) %{save-temps:%b.i} %{!save-temps:%g.i} \n\ + cc1 -fpreprocessed %{save-temps:%b.i} %{!save-temps:%g.i} %(cc1_options)}\ + %{!save-temps:%{!traditional-cpp:%{!no-integrated-cpp:\ + cc1 %(cpp_unique_options) %(cc1_options)}}}\ %{!fsyntax-only:%(invoke_as)}}}}", 0}, {"-", "%{!E:%e-E required when input is from standard input}\ @@ -1038,6 +1038,7 @@ static const struct option_map option_map[] = {"--library-directory", "-L", "a"}, {"--machine", "-m", "aj"}, {"--machine-", "-m", "*j"}, + {"--no-integrated-cpp", "-no-integrated-cpp", 0}, {"--no-line-commands", "-P", 0}, {"--no-precompiled-includes", "-noprecomp", 0}, {"--no-standard-includes", "-nostdinc", 0}, diff --git a/gcc/objc/lang-specs.h b/gcc/objc/lang-specs.h index 3017ab361c09f8a5c5aaabed03786b12d5729a7c..f8e6761d06f39b68e396429aeaa771926beaafc7 100644 --- a/gcc/objc/lang-specs.h +++ b/gcc/objc/lang-specs.h @@ -31,10 +31,10 @@ Boston, MA 02111-1307, USA. */ %{!E:%{!M:%{!MM:\ %{traditional|ftraditional|traditional-cpp:\ %eGNU Objective C no longer supports traditional compilation}\ - %{save-temps:cc1obj -E %(cpp_options) %b.mi \n\ - cc1obj -fpreprocessed %b.mi %(cc1_options) %{gen-decls}}\ - %{!save-temps:\ - cc1obj %(cpp_unique_options) %(cc1_options) %{gen-decls}}\ + %{save-temps|no-integrated-cpp:cc1obj -E %(cpp_options) %{save-temps:%b.mi} %{!save-temps:%g.mi} \n\ + cc1obj -fpreprocessed %{save-temps:%b.mi} %{!save-temps:%g.mi} %(cc1_options) %{gen-decls}}\ + %{!save-temps:%{!no-integrated-cpp:\ + cc1obj %(cpp_unique_options) %(cc1_options) %{gen-decls}}}\ %{!fsyntax-only:%(invoke_as)}}}}", 0}, {".mi", "@objc-cpp-output", 0}, {"@objc-cpp-output",