summaryrefslogtreecommitdiffstats
path: root/gcc/cp
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/decl2.c2
-rw-r--r--gcc/cp/lang-specs.h4
-rw-r--r--gcc/cp/lex.c2
4 files changed, 12 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index c61b19185fe..df1bd5718ef 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * decl2.c (cxx_decode_option): Handle -E.
+ * lang-specs.h (default_compilers): Preprocess with cc1plus.
+ * lex.c (cxx_init): Exit quickly if c_common_init returns NULL.
+
2002-03-23 Jakub Jelinek <jakub@redhat.com>
PR c++/6037
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 2dbb6636a98..6763b4591ac 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -700,6 +700,8 @@ cxx_decode_option (argc, argv)
}
else return strings_processed;
}
+ else if (!strcmp (p, "-E"))
+ flag_preprocess_only = 1;
else if (!strcmp (p, "-ansi"))
flag_no_nonansi_builtin = 1, flag_ansi = 1,
flag_noniso_default_format_attributes = 0, flag_no_gnu_keywords = 1;
diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
index e48bf7436f1..771ab59963f 100644
--- a/gcc/cp/lang-specs.h
+++ b/gcc/cp/lang-specs.h
@@ -35,13 +35,13 @@ Boston, MA 02111-1307, USA. */
{"@c++",
/* cc1plus has an integrated ISO C preprocessor. We should invoke
the external preprocessor if -save-temps is given. */
- "%{E|M|MM:cpp0 -lang-c++ %{!no-gcc:-D__GNUG__=%v1}\
+ "%{E|M|MM:cc1plus -E -lang-c++ %{!no-gcc:-D__GNUG__=%v1}\
%{!Wno-deprecated:-D__DEPRECATED}\
%{!fno-exceptions:-D__EXCEPTIONS}\
-D__GXX_ABI_VERSION=100\
%{ansi:-D__STRICT_ANSI__ -trigraphs -$} %(cpp_options)}\
%{!E:%{!M:%{!MM:\
- %{save-temps:cpp0 -lang-c++ \
+ %{save-temps:cc1plus -E -lang-c++ \
%{!no-gcc:-D__GNUG__=%v1}\
%{!Wno-deprecated:-D__DEPRECATED}\
%{!fno-exceptions:-D__EXCEPTIONS}\
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index 593f3121474..f0c6389935d 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -685,6 +685,8 @@ cxx_init (filename)
interface_unknown = 1;
filename = c_common_init (filename);
+ if (filename == NULL)
+ return NULL;
init_cp_pragma ();
OpenPOWER on IntegriCloud