From dd436eaf083edae4ced4382303bc9b09f72328c8 Mon Sep 17 00:00:00 2001 From: neil Date: Wed, 22 May 2002 05:40:22 +0000 Subject: [PATCH] PR preprocessor/6517 * Makefile.in: Update. * c-common.c (c_common_post_options): Add preprocessor errors to the error count. * c-lang.c (c_post_options): Kill. (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. * hooks.h: Add header guards. * langhooks-def.h: Include hooks.h. (LANG_HOOKS_POST_OPTIONS): Update. * langhooks.h (struct lang_hooks): Update post_options. * toplev.c (parse_options_and_default_flags): Update. cp: * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. * cp-tree.h (cxx_post_options): Kill. * cp-lex.c (cxx_post_options): Kill. objc: * objc-lang.c (objc_post_options): Kill. (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53724 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 17 +++++++++++++++++ gcc/Makefile.in | 7 ++++--- gcc/c-common.c | 4 ++++ gcc/c-lang.c | 10 +--------- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/Make-lang.in | 4 ++-- gcc/cp/cp-lang.c | 4 ++-- gcc/cp/cp-tree.h | 1 - gcc/cp/lex.c | 9 +-------- gcc/hooks.c | 6 ++++++ gcc/hooks.h | 6 ++++++ gcc/langhooks-def.h | 4 +++- gcc/langhooks.h | 5 ++++- gcc/objc/Make-lang.in | 2 +- gcc/objc/objc-lang.c | 15 ++------------- gcc/toplev.c | 2 +- 16 files changed, 60 insertions(+), 42 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e743447ab076..22ebdba7ef40 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,20 @@ +2002-05-22 Neil Booth + + PR preprocessor/6517 + * Makefile.in: Update. + * c-common.c (c_common_post_options): Add preprocessor + errors to the error count. + * c-lang.c (c_post_options): Kill. + (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. + * hooks.h: Add header guards. + * langhooks-def.h: Include hooks.h. + (LANG_HOOKS_POST_OPTIONS): Update. + * langhooks.h (struct lang_hooks): Update post_options. + * toplev.c (parse_options_and_default_flags): Update. +objc: + * objc-lang.c (objc_post_options): Kill. + (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. + 2002-05-21 Bruce Korb * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check diff --git a/gcc/Makefile.in b/gcc/Makefile.in index bdcf3f6a6a25..910c4f6e9e3f 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -547,6 +547,7 @@ CONFIG_H = $(GCONFIG_H) insn-constants.h insn-flags.h TCONFIG_H = tconfig.h $(xm_file_list) TARGET_H = target.h HOOKS_H = hooks.h +LANGHOOKS_DEF_H = langhooks.h $(HOOKS_H) TARGET_DEF_H = target-def.h $(HOOKS_H) TM_P_H = tm_p.h $(tm_p_file_list) tm-preds.h @@ -1161,7 +1162,7 @@ c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) $(C_TREE_H) \ c-typeck.o : c-typeck.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \ $(TARGET_H) flags.h intl.h output.h $(EXPR_H) $(RTL_H) toplev.h $(TM_P_H) c-lang.o : c-lang.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \ - langhooks.h langhooks-def.h c-common.h + langhooks.h $(LANGHOOKS_DEF_H) c-common.h c-lex.o : c-lex.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) c-lex.h \ debug.h $(C_TREE_H) c-common.h \ c-pragma.h input.h intl.h flags.h toplev.h output.h \ @@ -1336,7 +1337,7 @@ convert.o: convert.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h convert.h \ langhooks.o : langhooks.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) toplev.h \ tree-inline.h $(RTL_H) insn-config.h integrate.h langhooks.h \ - langhooks-def.h flags.h + $(LANGHOOKS_DEF_H) flags.h tree.o : tree.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h function.h toplev.h \ $(GGC_H) $(HASHTAB_H) $(TARGET_H) output.h $(TM_P_H) langhooks.h tree-dump.o: tree-dump.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \ @@ -1355,7 +1356,7 @@ fold-const.o : fold-const.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h \ toplev.h $(HASHTAB_H) $(EXPR_H) $(RTL_H) $(GGC_H) $(TM_P_H) langhooks.h diagnostic.o : diagnostic.c diagnostic.h real.h diagnostic.def \ $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(TM_P_H) flags.h $(GGC_H) \ - input.h toplev.h intl.h langhooks.h langhooks-def.h + input.h toplev.h intl.h langhooks.h $(LANGHOOKS_DEF_H) toplev.o : toplev.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) function.h \ flags.h xcoffout.h input.h $(INSN_ATTR_H) output.h diagnostic.h \ debug.h insn-config.h intl.h $(RECOG_H) Makefile toplev.h \ diff --git a/gcc/c-common.c b/gcc/c-common.c index 89f98703d054..7d6707a6a897 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -4319,6 +4319,10 @@ c_common_post_options () warning ("-Wformat-security ignored without -Wformat"); if (warn_missing_format_attribute && !warn_format) warning ("-Wmissing-format-attribute ignored without -Wformat"); + + /* If an error has occurred in cpplib, note it so we fail + immediately. */ + errorcount += cpp_errors (parse_in); } /* Hook that registers front end and target-specific built-ins. */ diff --git a/gcc/c-lang.c b/gcc/c-lang.c index 225967d61d17..07a60d0fb0f8 100644 --- a/gcc/c-lang.c +++ b/gcc/c-lang.c @@ -30,7 +30,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA static const char *c_init PARAMS ((const char *)); static void c_init_options PARAMS ((void)); -static void c_post_options PARAMS ((void)); /* ### When changing hooks, consider if ObjC needs changing too!! ### */ @@ -45,7 +44,7 @@ static void c_post_options PARAMS ((void)); #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION c_decode_option #undef LANG_HOOKS_POST_OPTIONS -#define LANG_HOOKS_POST_OPTIONS c_post_options +#define LANG_HOOKS_POST_OPTIONS c_common_post_options #undef LANG_HOOKS_GET_ALIAS_SET #define LANG_HOOKS_GET_ALIAS_SET c_common_get_alias_set #undef LANG_HOOKS_SAFE_FROM_P @@ -155,13 +154,6 @@ const char *const tree_code_name[] = { }; #undef DEFTREECODE -/* Post-switch processing. */ -static void -c_post_options () -{ - c_common_post_options (); -} - static void c_init_options () { diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 638154a75629..4048639af31b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2002-05-22 Neil Booth + + * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. + * cp-tree.h (cxx_post_options): Kill. + * cp-lex.c (cxx_post_options): Kill. + 2002-05-21 Richard Henderson * lex.c (rid_to_yy): Add RID_THREAD. diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index 06052f4f2ba6..56a98ba74c69 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -251,7 +251,7 @@ cp/spew.o: cp/spew.c $(CXX_TREE_H) cp/parse.h flags.h cp/lex.h toplev.h cp/lex.o: cp/lex.c $(CXX_TREE_H) cp/parse.h flags.h cp/lex.h c-pragma.h \ toplev.h output.h mbchar.h $(GGC_H) input.h diagnostic.h cp/operators.def \ $(TM_P_H) -cp/cp-lang.o: cp/cp-lang.c $(CXX_TREE_H) toplev.h langhooks.h langhooks-def.h \ +cp/cp-lang.o: cp/cp-lang.c $(CXX_TREE_H) toplev.h langhooks.h $(LANGHOOKS_DEF_H) \ c-common.h cp/decl.o: cp/decl.c $(CXX_TREE_H) flags.h cp/lex.h cp/decl.h stack.h \ output.h $(EXPR_H) except.h toplev.h hash.h $(GGC_H) $(RTL_H) \ @@ -283,7 +283,7 @@ cp/expr.o: cp/expr.c $(CXX_TREE_H) $(RTL_H) flags.h $(EXPR_H) toplev.h \ cp/pt.o: cp/pt.c $(CXX_TREE_H) cp/decl.h cp/parse.h cp/lex.h toplev.h \ $(GGC_H) $(RTL_H) except.h tree-inline.h cp/error.o: cp/error.c $(CXX_TREE_H) toplev.h diagnostic.h flags.h real.h \ - langhooks-def.h + $(LANGHOOKS_DEF_H) cp/repo.o: cp/repo.c $(CXX_TREE_H) toplev.h $(GGC_H) diagnostic.h cp/semantics.o: cp/semantics.c $(CXX_TREE_H) cp/lex.h except.h toplev.h \ flags.h $(GGC_H) debug.h output.h $(RTL_H) $(TIMEVAR_H) $(EXPR_H) \ diff --git a/gcc/cp/cp-lang.c b/gcc/cp/cp-lang.c index 973c14fed0de..ce5165e9cd37 100644 --- a/gcc/cp/cp-lang.c +++ b/gcc/cp/cp-lang.c @@ -1,5 +1,5 @@ /* Language-dependent hooks for C++. - Copyright 2001 Free Software Foundation, Inc. + Copyright 2001, 2002 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GNU CC. @@ -45,7 +45,7 @@ static bool cxx_warn_unused_global_decl PARAMS ((tree)); #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION cxx_decode_option #undef LANG_HOOKS_POST_OPTIONS -#define LANG_HOOKS_POST_OPTIONS cxx_post_options +#define LANG_HOOKS_POST_OPTIONS c_common_post_options #undef LANG_HOOKS_GET_ALIAS_SET #define LANG_HOOKS_GET_ALIAS_SET cxx_get_alias_set #undef LANG_HOOKS_EXPAND_CONSTANT diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 02763095024d..907bbd0515c0 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -3974,7 +3974,6 @@ extern int cp_type_qual_from_rid PARAMS ((tree)); extern const char *cxx_init PARAMS ((const char *)); extern void cxx_finish PARAMS ((void)); extern void cxx_init_options PARAMS ((void)); -extern void cxx_post_options PARAMS ((void)); /* in method.c */ extern void init_method PARAMS ((void)); diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index a1f35d4965c6..91931d4c4cd8 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -1,6 +1,6 @@ /* Separate lexical analyzer for GNU C++. Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001 Free Software Foundation, Inc. + 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. @@ -203,13 +203,6 @@ int interface_unknown; /* whether or not we know this class to behave according to #pragma interface. */ -/* Post-switch processing. */ -void -cxx_post_options () -{ - c_common_post_options (); -} - /* Initialization before switch parsing. */ void cxx_init_options () diff --git a/gcc/hooks.c b/gcc/hooks.c index 1ceeef6e7370..508e29c3f005 100644 --- a/gcc/hooks.c +++ b/gcc/hooks.c @@ -26,6 +26,12 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "system.h" #include "hooks.h" +/* Generic hook that does absolutely zappo. */ +void +hook_void_void () +{ +} + /* Generic hook that takes no arguments and returns false. */ bool hook_void_bool_false () diff --git a/gcc/hooks.h b/gcc/hooks.h index f8f57bca8a74..2bed2dd3760b 100644 --- a/gcc/hooks.h +++ b/gcc/hooks.h @@ -19,6 +19,12 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. You are forbidden to forbid anyone else to use, share and improve what you give them. Help stamp out software-hoarding! */ +#ifndef GCC_HOOKS_H +#define GCC_HOOKS_H + bool hook_void_bool_false PARAMS ((void)); bool hook_tree_bool_false PARAMS ((tree)); void hook_tree_int_void PARAMS ((tree, int)); +void hook_void_void PARAMS ((void)); + +#endif diff --git a/gcc/langhooks-def.h b/gcc/langhooks-def.h index daf00101d767..27ca72386fbb 100644 --- a/gcc/langhooks-def.h +++ b/gcc/langhooks-def.h @@ -22,6 +22,8 @@ Boston, MA 02111-1307, USA. */ #ifndef GCC_LANG_HOOKS_DEF_H #define GCC_LANG_HOOKS_DEF_H +#include "hooks.h" + struct diagnostic_context; /* Provide a hook routine for alias sets that always returns 1. This is @@ -86,7 +88,7 @@ tree lhd_tree_inlining_convert_parm_for_inlining PARAMS ((tree, tree, tree)); #define LANG_HOOKS_CLEAR_BINDING_STACK lhd_clear_binding_stack #define LANG_HOOKS_INIT_OPTIONS lhd_do_nothing #define LANG_HOOKS_DECODE_OPTION lhd_decode_option -#define LANG_HOOKS_POST_OPTIONS lhd_do_nothing +#define LANG_HOOKS_POST_OPTIONS hook_void_void #define LANG_HOOKS_GET_ALIAS_SET lhd_get_alias_set #define LANG_HOOKS_EXPAND_CONSTANT lhd_return_tree #define LANG_HOOKS_EXPAND_EXPR lhd_expand_expr diff --git a/gcc/langhooks.h b/gcc/langhooks.h index 417f77bd1b58..56b2966df4f4 100644 --- a/gcc/langhooks.h +++ b/gcc/langhooks.h @@ -199,7 +199,10 @@ struct lang_hooks /* Called when all command line options have been parsed. Should do any required consistency checks, modifications etc. Complex initialization should be left to the "init" callback, since GC - and the identifier hashes are set up between now and then. */ + and the identifier hashes are set up between now and then. + + If errorcount is non-zero after this call the compiler exits + immediately and the finish hook is not called. */ void (*post_options) PARAMS ((void)); /* Called after post_options, to initialize the front end. The main diff --git a/gcc/objc/Make-lang.in b/gcc/objc/Make-lang.in index bc5f709c579d..379a16cfdbb3 100644 --- a/gcc/objc/Make-lang.in +++ b/gcc/objc/Make-lang.in @@ -93,7 +93,7 @@ objc-act.o : $(srcdir)/objc/objc-act.c \ $(srcdir)/c-tree.h $(srcdir)/c-common.h $(srcdir)/c-lex.h \ $(srcdir)/toplev.h $(srcdir)/flags.h $(srcdir)/objc/objc-act.h \ $(srcdir)/input.h $(srcdir)/function.h $(srcdir)/output.h $(srcdir)/debug.h \ - $(srcdir)/langhooks.h $(srcdir)/langhooks-def.h + $(srcdir)/langhooks.h $(LANGHOOKS_DEF_H) $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -I$(srcdir)/objc \ -c $(srcdir)/objc/objc-act.c diff --git a/gcc/objc/objc-lang.c b/gcc/objc/objc-lang.c index 588d5479d9ac..647baf3e329d 100644 --- a/gcc/objc/objc-lang.c +++ b/gcc/objc/objc-lang.c @@ -1,5 +1,5 @@ /* Language-dependent hooks for Objective-C. - Copyright 2001 Free Software Foundation, Inc. + Copyright 2001, 2002 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GNU CC. @@ -30,7 +30,6 @@ Boston, MA 02111-1307, USA. */ #include "langhooks-def.h" static void objc_init_options PARAMS ((void)); -static void objc_post_options PARAMS ((void)); #undef LANG_HOOKS_NAME #define LANG_HOOKS_NAME "GNU Objective-C" @@ -43,7 +42,7 @@ static void objc_post_options PARAMS ((void)); #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION objc_decode_option #undef LANG_HOOKS_POST_OPTIONS -#define LANG_HOOKS_POST_OPTIONS objc_post_options +#define LANG_HOOKS_POST_OPTIONS c_common_post_options #undef LANG_HOOKS_PARSE_FILE #define LANG_HOOKS_PARSE_FILE c_common_parse_file #undef LANG_HOOKS_MARK_TREE @@ -165,13 +164,3 @@ objc_init_options () { c_common_init_options (clk_objective_c); } - -/* Post-switch processing. */ - -static void -objc_post_options () -{ - c_common_post_options (); -} - - diff --git a/gcc/toplev.c b/gcc/toplev.c index a7e856b2d87d..f465adc1d447 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -5190,7 +5190,7 @@ toplev_main (argc, argv) parse_options_and_default_flags (argc, argv); /* Exit early if we can (e.g. -help). */ - if (!exit_after_options) + if (!errorcount && !exit_after_options) do_compile (); if (errorcount || sorrycount) -- 2.39.2