summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2002-05-22 05:40:22 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2002-05-22 05:40:22 +0000
commitdd436eaf083edae4ced4382303bc9b09f72328c8 (patch)
tree393799da65fb9425b665931be188539dc56ed666
parent77f2677453e3dbe2d205d8af1e28c95828255961 (diff)
downloadgcc-dd436eaf083edae4ced4382303bc9b09f72328c8.tar.gz
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
-rw-r--r--gcc/ChangeLog17
-rw-r--r--gcc/Makefile.in7
-rw-r--r--gcc/c-common.c4
-rw-r--r--gcc/c-lang.c10
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/Make-lang.in4
-rw-r--r--gcc/cp/cp-lang.c4
-rw-r--r--gcc/cp/cp-tree.h1
-rw-r--r--gcc/cp/lex.c9
-rw-r--r--gcc/hooks.c6
-rw-r--r--gcc/hooks.h6
-rw-r--r--gcc/langhooks-def.h4
-rw-r--r--gcc/langhooks.h5
-rw-r--r--gcc/objc/Make-lang.in2
-rw-r--r--gcc/objc/objc-lang.c15
-rw-r--r--gcc/toplev.c2
16 files changed, 60 insertions, 42 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e743447ab07..22ebdba7ef4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,20 @@
+2002-05-22 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ 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 <bkorb@gnu.org>
* fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index bdcf3f6a6a2..910c4f6e9e3 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 89f98703d05..7d6707a6a89 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 225967d61d1..07a60d0fb0f 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 638154a7562..4048639af31 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2002-05-22 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * 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 <rth@redhat.com>
* lex.c (rid_to_yy): Add RID_THREAD.
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index 06052f4f2ba..56a98ba74c6 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 973c14fed0d..ce5165e9cd3 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 <aoliva@redhat.com>
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 02763095024..907bbd0515c 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 a1f35d4965c..91931d4c4cd 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 1ceeef6e737..508e29c3f00 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 f8f57bca8a7..2bed2dd3760 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 daf00101d76..27ca72386fb 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 417f77bd1b5..56b2966df4f 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 bc5f709c579..379a16cfdbb 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 588d5479d9a..647baf3e329 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 <zlaski@apple.com>
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 a7e856b2d87..f465adc1d44 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)