This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
3.0 PATCH: Define _LANGUAGE_C_PLUS_PLUS independent of source files extension
- To: gcc-patches at gcc dot gnu dot org
- Subject: 3.0 PATCH: Define _LANGUAGE_C_PLUS_PLUS independent of source files extension
- From: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- Date: Thu, 7 Jun 2001 20:37:33 +0200 (MEST)
- Cc: drk at sgi dot com, johnv at adacel dot com dot au, buffalo at the7lg dot de
The following patch fixes PR c++/3047, which is a duplicate of target/441.
A prior version bootstrapped without regression on mips-sgi-irix6.2.
Further testing it, I noticed that for .cpp files both
_LANGUAGE_C_PLUS_PLUS and _LANGUAGE_C were defined, so I had to exclude the
three other extensions g++/gcc recognizes as C++.
A similar problem exists in alpha/alpha.h, patch to follow.
Ok to install, branch and trunk, provided another bootstrap is ok?
Rainer
-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University
Email: ro@TechFak.Uni-Bielefeld.DE
Thu Jun 7 20:07:29 2001 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/mips/mips.h (CPP_SPEC): Simplify .s/.S handling.
Don't define _LANGUAGE_C and variants for .cpp/.cp/.c++ files.
Move definition of _LANGUAGE_C_PLUS_PLUS ...
(CPLUSPLUS_CPP_SPEC): ... here.
Fixes PRs c++/3047, target/441.
Index: mips/mips.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/mips.h,v
retrieving revision 1.108.2.2
diff -u -p -r1.108.2.2 mips.h
--- mips.h 2001/05/20 00:31:43 1.108.2.2
+++ mips.h 2001/06/07 18:26:30
@@ -951,17 +951,19 @@ while (0)
#endif
#endif
+/* For C++ we need to ensure that _LANGUAGE_C_PLUS_PLUS is defined independent
+ of the source file extension. */
+#define CPLUSPLUS_CPP_SPEC "\
+-D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS \
+%(cpp) \
+"
/* CPP_SPEC is the set of arguments to pass to the preprocessor. */
#ifndef CPP_SPEC
#define CPP_SPEC "\
-%{.cc: -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS} \
-%{.cxx: -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS} \
-%{.C: -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS} \
%{.m: -D__LANGUAGE_OBJECTIVE_C -D_LANGUAGE_OBJECTIVE_C -D__LANGUAGE_C -D_LANGUAGE_C} \
-%{.S: -D__LANGUAGE_ASSEMBLY -D_LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
-%{.s: -D__LANGUAGE_ASSEMBLY -D_LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
-%{!.S: %{!.s: %{!.cc: %{!.cxx: %{!.C: %{!.m: -D__LANGUAGE_C -D_LANGUAGE_C %{!ansi:-DLANGUAGE_C}}}}}}} \
+%{.S|.s: -D__LANGUAGE_ASSEMBLY -D_LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
+%{!.S: %{!.s: %{!.cc: %{!.cxx: %{!.cpp: %{!.cp: %{!.c++: %{!.C: %{!.m: -D__LANGUAGE_C -D_LANGUAGE_C %{!ansi:-DLANGUAGE_C}}}}}}}}}} \
%(subtarget_cpp_size_spec) \
%{mips3:-U__mips -D__mips=3 -D__mips64} \
%{mips4:-U__mips -D__mips=4 -D__mips64} \