]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
PR preprocessor/6517
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 May 2002 05:40:22 +0000 (05:40 +0000)
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 May 2002 05:40:22 +0000 (05:40 +0000)
* 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

16 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/c-common.c
gcc/c-lang.c
gcc/cp/ChangeLog
gcc/cp/Make-lang.in
gcc/cp/cp-lang.c
gcc/cp/cp-tree.h
gcc/cp/lex.c
gcc/hooks.c
gcc/hooks.h
gcc/langhooks-def.h
gcc/langhooks.h
gcc/objc/Make-lang.in
gcc/objc/objc-lang.c
gcc/toplev.c

index e743447ab076577416ed248a8b4bab5a516822b1..22ebdba7ef4040a45875ebfe417fd7819abe8951 100644 (file)
@@ -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
index bdcf3f6a6a25c59571aa225226e62e0a3a2b3ff8..910c4f6e9e3f9eaf27388f409a241cc2f82ef41d 100644 (file)
@@ -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 \
index 89f98703d054ee40f4712fb9620e2e993178a4cb..7d6707a6a897e0db1287cd7f64c940a0f2b1450d 100644 (file)
@@ -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.  */
index 225967d61d17a17cc40aee07507d3f0f88781ca8..07a60d0fb0f88b474efb210a043036f275d99aa4 100644 (file)
@@ -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 ()
 {
index 638154a75629cbf22715908722ceb9e2e81ad3ce..4048639af31b85d65ea108e2db961b5389400c86 100644 (file)
@@ -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.
index 06052f4f2ba607f2b0605aecf949fb7f5a431a98..56a98ba74c699c4056476e1328eae412d2b19d5a 100644 (file)
@@ -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) \
index 973c14fed0deb0951098e9a8831be81c4c7acf96..ce5165e9cd376ab08a04d84be926f018c229e5e8 100644 (file)
@@ -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
index 02763095024dc7711314151a257c66a9b9e5c819..907bbd0515c01c2b9da10e297cc6a9453a36bdcc 100644 (file)
@@ -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));
index a1f35d4965c61ad31d516372858c23a47e3bc22b..91931d4c4cd8e2ee369ef7551c1c7d55e5d8ef7f 100644 (file)
@@ -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.  */
 
 \f
-/* Post-switch processing.  */
-void
-cxx_post_options ()
-{
-  c_common_post_options ();
-}
-
 /* Initialization before switch parsing.  */
 void
 cxx_init_options ()
index 1ceeef6e7370f9ef42e208936837fbf66767cad9..508e29c3f005edc56f484625f86b66c97b008549 100644 (file)
@@ -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 ()
index f8f57bca8a749a1a6a853e519b3cedae03c29381..2bed2dd3760bee9061e4d08ab4079b77ab7bf5d2 100644 (file)
@@ -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
index daf00101d7679c5e97cb73dd6e2cb2be059e90c6..27ca72386fbbdcab2d26193dd46e251dc1453204 100644 (file)
@@ -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
index 417f77bd1b58056f6d76688cdd71d5b5808dd6d0..56b2966df4f40559b1554fa606780a4ff79fb2d8 100644 (file)
@@ -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
index bc5f709c579d1128eeb4f0cecffaf1468c89079f..379a16cfdbb3c7918e07930121d8ff95d14594c5 100644 (file)
@@ -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
 
index 588d5479d9ac27f4ac276f7fa1f3ad86ae70fbac..647baf3e329dc53cd424e5d0246bc26e6fb22849 100644 (file)
@@ -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 ();
-}
-
-
index a7e856b2d87d8df06c84d0c08dc4a2bc11af0403..f465adc1d447607a2440f0e4d955786e232d7f3e 100644 (file)
@@ -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)