aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/c-common.c5
-rw-r--r--gcc/cp/lang-specs.h26
-rw-r--r--gcc/gcc.c2
4 files changed, 22 insertions, 20 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 49a41f8..f467337 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,14 @@
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.
diff --git a/gcc/c-common.c b/gcc/c-common.c
index 7eb391a..784cc64 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -4728,6 +4728,11 @@ cb_register_builtins (pfile)
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. */
diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
index f35ff71..7b87116 100644
--- a/gcc/cp/lang-specs.h
+++ b/gcc/cp/lang-specs.h
@@ -33,28 +33,16 @@ Boston, MA 02111-1307, USA. */
{".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},
diff --git a/gcc/gcc.c b/gcc/gcc.c
index cd55240..4e1ba5d 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -675,7 +675,7 @@ static const char *cpp_unique_options =
%{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*}}";