diff options
Diffstat (limited to 'gcc/cp')
| -rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/cp/decl2.c | 2 | ||||
| -rw-r--r-- | gcc/cp/lang-specs.h | 4 | ||||
| -rw-r--r-- | gcc/cp/lex.c | 2 |
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 (); |

