2002-08-01 Neil Booth <neil@daikokuya.co.uk>
+ * c-common.c (cb_register_builtins): If C++, define
+ __EXCEPTIONS, __DEPRECATED and __GXX_ABI_VERSION as appropriate.
+ * gcc.c (cpp_unique_options): Remove __GXX_ABI_VERSION.
+cp:
+ * lang-specs.h: Simplify in accordance with new code in
+ c-common.c.
+
+2002-08-01 Neil Booth <neil@daikokuya.co.uk>
+
* c-common.c: Define all C/ObjC/C++ warning and flag variables.
* c-common.h: Declare all C/ObjC/C++ warning and flag variables.
* c-decl.c: Move all warning and flag variables to c-common.c.
cpp_define (pfile, "__GXX_WEAK__=1");
else
cpp_define (pfile, "__GXX_WEAK__=0");
+ if (flag_exceptions)
+ cpp_define (pfile, "__EXCEPTIONS");
+ if (warn_deprecated)
+ cpp_define (pfile, "__DEPRECATED");
+ cpp_define (pfile, "__GXX_ABI_VERSION__=101");
}
/* libgcc needs to know this. */
{".c++", "@c++", 0},
{".C", "@c++", 0},
{"@c++",
- /* cc1plus has an integrated ISO C preprocessor. We should invoke
- the external preprocessor if -save-temps is given. */
+ /* We should convert -ansi to -std=c++98 even if -fpreprocessed,
+ to get dollars in identifiers correct. */
"%{E|M|MM:cc1plus -E %{!no-gcc:-D__GNUG__=%v1}\
- %{!Wno-deprecated:-D__DEPRECATED}\
- %{!fno-exceptions:-D__EXCEPTIONS}\
- %{ansi:-D__STRICT_ANSI__ -trigraphs -$} %(cpp_options) %2\
- %(cpp_debug_options)}\
+ %{ansi:-std=c++98} %(cpp_options) %2 %(cpp_debug_options)}\
%{!E:%{!M:%{!MM:\
- %{save-temps:cc1plus -E \
- %{!no-gcc:-D__GNUG__=%v1}\
- %{!Wno-deprecated:-D__DEPRECATED}\
- %{!fno-exceptions:-D__EXCEPTIONS}\
- %{ansi:-D__STRICT_ANSI__ -trigraphs -$}\
- %(cpp_options) %2 %b.ii \n}\
+ %{save-temps:cc1plus -E %{!no-gcc:-D__GNUG__=%v1}\
+ %{ansi:-std=c++98} %(cpp_options) %2 %b.ii \n}\
cc1plus %{save-temps:-fpreprocessed %b.ii}\
- %{!save-temps:%(cpp_unique_options)\
- %{!no-gcc:-D__GNUG__=%v1} \
- %{!Wno-deprecated:-D__DEPRECATED}\
- %{!fno-exceptions:-D__EXCEPTIONS}\
- %{ansi:-D__STRICT_ANSI__}}\
- %{ansi:-trigraphs -$}\
- %(cc1_options) %2 %{+e1*}\
+ %{!save-temps:%(cpp_unique_options) %{!no-gcc:-D__GNUG__=%v1}}\
+ %{ansi:-std=c++98} %(cc1_options) %2 %{+e1*}\
%{!fsyntax-only:%(invoke_as)}}}}",
CPLUSPLUS_CPP_SPEC},
{".ii", "@c++-cpp-output", 0},
%{MMD:-MMD %W{!o: %b.d}%W{o*:%.d%*}}\
%{M} %{MM} %W{MF*} %{MG} %{MP} %{MQ*} %{MT*}\
%{!E:%{!M:%{!MM:%{MD|MMD:%{o*:-MQ %*}}}}}\
- %{!no-gcc:-D__GNUC__=%v1 -D__GNUC_MINOR__=%v2 -D__GNUC_PATCHLEVEL__=%v3 -D__GXX_ABI_VERSION=101}\
+ %{!no-gcc:-D__GNUC__=%v1 -D__GNUC_MINOR__=%v2 -D__GNUC_PATCHLEVEL__=%v3}\
%{!undef:%{!ansi:%{!std=*:%p}%{std=gnu*:%p}} %P} %{trigraphs}\
%{remap} %{g3:-dD} %{H} %C %{D*&U*&A*} %{i*} %Z %i\
%{E|M|MM:%W{o*}}";