aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.demon.co.uk>2002-03-17 20:41:46 +0000
committerNeil Booth <neil@gcc.gnu.org>2002-03-17 20:41:46 +0000
commit52dabb6c609b81591884caf64894caa84e16a29f (patch)
tree01d8cbe7674c79a641d252751aa12e5e865b5e8c
parent6e1a435df002c87da258a71a64a43720b17d1631 (diff)
downloadgcc-52dabb6c609b81591884caf64894caa84e16a29f.zip
gcc-52dabb6c609b81591884caf64894caa84e16a29f.tar.gz
gcc-52dabb6c609b81591884caf64894caa84e16a29f.tar.bz2
c-common.h (yyparse, [...]): New.
* c-common.h (yyparse, c_common_parse_file): New. * c-lang.c: Include c-common.h. (LANG_HOOKS_PARSE_FILE): Redefine. * c-lex.c: Include c-common.h. (yyparse): Rename c_common_parse_file. Call yyparse. * c-parse.in (yyparse): Remove macro. * c-tree.h (yyparse_1): Remove. * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New. (LANG_HOOKS_INITIALIZER): Update. * langhooks.h (struct lang_hoooks): New hook parse_file. * toplev.c (compile_file): Use parse_file hook. * tree.h (yyparse): Remove. ada: * misc.c (LANG_HOOKS_PARSE_FILE): Redefine. (yyparse): Rename gnat_parse_file. cp: * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine. * parse.y (yyparse): Remove macro. f: * com.c (LANG_HOOKS_PARSE_FILE): Redefine. * com.h (ffe_parse_file): New. * parse.c (NAME_OF_STDIN): Remove. (yyparse): Rename ffe_parse_file. java: * java-tree.h (java_parse_file): New. * jcf-parse.c (yyparse): Rename java_parse_file. * lang.c (LANG_HOOKS_PARSE_FILE): Redefine. objc: * objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine. From-SVN: r50926
-rw-r--r--gcc/ChangeLog17
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/misc.c12
-rw-r--r--gcc/c-common.h3
-rw-r--r--gcc/c-lang.c3
-rw-r--r--gcc/c-lex.c7
-rw-r--r--gcc/c-parse.in3
-rw-r--r--gcc/c-tree.h1
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/cp-lang.c2
-rw-r--r--gcc/cp/parse.y3
-rw-r--r--gcc/f/ChangeLog7
-rw-r--r--gcc/f/com.c4
-rw-r--r--gcc/f/com.h1
-rw-r--r--gcc/f/parse.c8
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/java-tree.h1
-rw-r--r--gcc/java/jcf-parse.c7
-rw-r--r--gcc/java/lang.c2
-rw-r--r--gcc/langhooks-def.h2
-rw-r--r--gcc/langhooks.h3
-rw-r--r--gcc/objc/objc-lang.c2
-rw-r--r--gcc/toplev.c9
-rw-r--r--gcc/tree.h2
24 files changed, 80 insertions, 35 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 82285b7..9c9c00c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,20 @@
+2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * c-common.h (yyparse, c_common_parse_file): New.
+ * c-lang.c: Include c-common.h.
+ (LANG_HOOKS_PARSE_FILE): Redefine.
+ * c-lex.c: Include c-common.h.
+ (yyparse): Rename c_common_parse_file. Call yyparse.
+ * c-parse.in (yyparse): Remove macro.
+ * c-tree.h (yyparse_1): Remove.
+ * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
+ (LANG_HOOKS_INITIALIZER): Update.
+ * langhooks.h (struct lang_hoooks): New hook parse_file.
+ * toplev.c (compile_file): Use parse_file hook.
+ * tree.h (yyparse): Remove.
+objc:
+ * objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
+
2002-03-17 Hans-Peter Nilsson <hp@bitrange.com>
* config/mmix/mmix.md ("truncdfsf2"): Correct operator is
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 07211fa..9b062a7 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
+ (yyparse): Rename gnat_parse_file.
+
2002-03-14 Geoffrey Keating <geoffk@redhat.com>
Delete all lines containing "$Revision:".
diff --git a/gcc/ada/misc.c b/gcc/ada/misc.c
index 393f70a..46e2802 100644
--- a/gcc/ada/misc.c
+++ b/gcc/ada/misc.c
@@ -85,6 +85,7 @@ static void gnat_print_type PARAMS ((FILE *, tree, int));
static const char *gnat_printable_name PARAMS ((tree, int));
static tree gnat_eh_runtime_type PARAMS ((tree));
static int gnat_eh_type_covers PARAMS ((tree, tree));
+static void gnat_parse_file PARAMS ((void));
/* Structure giving our language-specific hooks. */
@@ -98,6 +99,8 @@ static int gnat_eh_type_covers PARAMS ((tree, tree));
#define LANG_HOOKS_INIT_OPTIONS gnat_init_options
#undef LANG_HOOKS_DECODE_OPTION
#define LANG_HOOKS_DECODE_OPTION gnat_decode_option
+#undef LANG_HOOKS_PARSE_FILE
+#define LANG_HOOKS_PARSE_FILE gnat_parse_file
#undef LANG_HOOKS_HONOR_READONLY
#define LANG_HOOKS_HONOR_READONLY 1
#undef LANG_HOOKS_GET_ALIAS_SET
@@ -167,11 +170,10 @@ extern void __gnat_initialize PARAMS((void));
extern void adainit PARAMS((void));
extern void _ada_gnat1drv PARAMS((void));
-/* For most front-ends, this is the parser for the language. For us, we
- process the GNAT tree. */
+/* The parser for the language. For us, we process the GNAT tree. */
-int
-yyparse ()
+static void
+gnat_parse_file ()
{
/* call the target specific initializations */
__gnat_initialize();
@@ -183,8 +185,6 @@ yyparse ()
/* Call the front end */
_ada_gnat1drv ();
-
- return 0;
}
/* Decode all the language specific options that cannot be decoded by GCC.
diff --git a/gcc/c-common.h b/gcc/c-common.h
index 280c5b0..f93e6fe 100644
--- a/gcc/c-common.h
+++ b/gcc/c-common.h
@@ -325,7 +325,7 @@ extern void (*lang_expand_function_end) PARAMS ((void));
noreturn attribute. */
extern int (*lang_missing_noreturn_ok_p) PARAMS ((tree));
-
+extern int yyparse PARAMS ((void));
extern stmt_tree current_stmt_tree PARAMS ((void));
extern tree *current_scope_stmt_stack PARAMS ((void));
extern void begin_stmt_tree PARAMS ((tree *));
@@ -552,6 +552,7 @@ extern void c_common_init_options PARAMS ((enum c_language_kind));
extern void c_common_post_options PARAMS ((void));
extern const char *c_common_init PARAMS ((const char *));
extern void c_common_finish PARAMS ((void));
+extern void c_common_parse_file PARAMS ((void));
extern HOST_WIDE_INT c_common_get_alias_set PARAMS ((tree));
extern bool c_promoting_integer_type_p PARAMS ((tree));
extern int self_promoting_args_p PARAMS ((tree));
diff --git a/gcc/c-lang.c b/gcc/c-lang.c
index c01d256..bb26001 100644
--- a/gcc/c-lang.c
+++ b/gcc/c-lang.c
@@ -24,6 +24,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "system.h"
#include "tree.h"
#include "c-tree.h"
+#include "c-common.h"
#include "langhooks.h"
#include "langhooks-def.h"
@@ -49,6 +50,8 @@ static void c_post_options PARAMS ((void));
#define LANG_HOOKS_GET_ALIAS_SET c_common_get_alias_set
#undef LANG_HOOKS_SAFE_FROM_P
#define LANG_HOOKS_SAFE_FROM_P c_safe_from_p
+#undef LANG_HOOKS_PARSE_FILE
+#define LANG_HOOKS_PARSE_FILE c_common_parse_file
#undef LANG_HOOKS_STATICP
#define LANG_HOOKS_STATICP c_staticp
#undef LANG_HOOKS_PRINT_IDENTIFIER
diff --git a/gcc/c-lex.c b/gcc/c-lex.c
index d157a3f..7bafde7 100644
--- a/gcc/c-lex.c
+++ b/gcc/c-lex.c
@@ -29,6 +29,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "output.h"
#include "c-lex.h"
#include "c-tree.h"
+#include "c-common.h"
#include "flags.h"
#include "timevar.h"
#include "cpplib.h"
@@ -155,13 +156,13 @@ init_c_lex (filename)
Also, make sure the start_source_file debug hook gets called for
the primary source file. */
-int
-yyparse()
+void
+c_common_parse_file ()
{
(*debug_hooks->start_source_file) (lineno, input_filename);
cpp_finish_options (parse_in);
- return yyparse_1();
+ yyparse ();
}
struct c_fileinfo *
diff --git a/gcc/c-parse.in b/gcc/c-parse.in
index 80e4ca8..1628057 100644
--- a/gcc/c-parse.in
+++ b/gcc/c-parse.in
@@ -64,9 +64,6 @@ end ifobjc
/* Cause the "yydebug" variable to be defined. */
#define YYDEBUG 1
-
-/* Rename the "yyparse" function so that we can override it elsewhere. */
-#define yyparse yyparse_1
%}
%start program
diff --git a/gcc/c-tree.h b/gcc/c-tree.h
index d6f622e..d39e3ff 100644
--- a/gcc/c-tree.h
+++ b/gcc/c-tree.h
@@ -161,7 +161,6 @@ extern tree lookup_objc_ivar PARAMS ((tree));
/* in c-parse.in */
extern void c_parse_init PARAMS ((void));
extern void c_set_yydebug PARAMS ((int));
-extern int yyparse_1 PARAMS ((void));
/* in c-aux-info.c */
extern void gen_aux_info_record PARAMS ((tree, int, int, int));
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 9ef43ed..fd306a7 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
+ * parse.y (yyparse): Remove macro.
+
2002-03-17 Jason Merrill <jason@redhat.com>
PR c++/5757
diff --git a/gcc/cp/cp-lang.c b/gcc/cp/cp-lang.c
index 1a27136..40defa5 100644
--- a/gcc/cp/cp-lang.c
+++ b/gcc/cp/cp-lang.c
@@ -51,6 +51,8 @@ static bool ok_to_generate_alias_set_for_type PARAMS ((tree));
#define LANG_HOOKS_EXPAND_CONSTANT cplus_expand_constant
#undef LANG_HOOKS_SAFE_FROM_P
#define LANG_HOOKS_SAFE_FROM_P c_safe_from_p
+#undef LANG_HOOKS_PARSE_FILE
+#define LANG_HOOKS_PARSE_FILE c_common_parse_file
#undef LANG_HOOKS_DUP_LANG_SPECIFIC_DECL
#define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL cxx_dup_lang_specific_decl
#undef LANG_HOOKS_UNSAVE_EXPR_NOW
diff --git a/gcc/cp/parse.y b/gcc/cp/parse.y
index fd53a85..7988ec3 100644
--- a/gcc/cp/parse.y
+++ b/gcc/cp/parse.y
@@ -228,9 +228,6 @@ cp_parse_init ()
ggc_add_tree_root (&current_enum_type, 1);
ggc_add_tree_root (&saved_scopes, 1);
}
-
-/* Rename the "yyparse" function so that we can override it elsewhere. */
-#define yyparse yyparse_1
%}
%start program
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index 0f3ec2c..43c9c9c 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,10 @@
+Sun Mar 17 20:57:30 2002 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * com.c (LANG_HOOKS_PARSE_FILE): Redefine.
+ * com.h (ffe_parse_file): New.
+ * parse.c (NAME_OF_STDIN): Remove.
+ (yyparse): Rename ffe_parse_file.
+
Tue Mar 12 20:23:18 2002 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* com.c (tree_code_type, tree_code_length, tree_code_name):
diff --git a/gcc/f/com.c b/gcc/f/com.c
index f895db4..016b422 100644
--- a/gcc/f/com.c
+++ b/gcc/f/com.c
@@ -13928,7 +13928,7 @@ start_decl (tree decl, bool is_top_level)
Returns 1 on success. If the DECLARATOR is not suitable for a function
(it defines a datum instead), we return 0, which tells
- yyparse to report a parse error.
+ ffe_parse_file to report a parse error.
NESTED is nonzero for a function nested within another function. */
@@ -14211,6 +14211,8 @@ static void ffe_print_identifier PARAMS ((FILE *, tree, int));
#define LANG_HOOKS_INIT_OPTIONS ffe_init_options
#undef LANG_HOOKS_DECODE_OPTION
#define LANG_HOOKS_DECODE_OPTION ffe_decode_option
+#undef LANG_HOOKS_PARSE_FILE
+#define LANG_HOOKS_PARSE_FILE ffe_parse_file
#undef LANG_HOOKS_PRINT_IDENTIFIER
#define LANG_HOOKS_PRINT_IDENTIFIER ffe_print_identifier
diff --git a/gcc/f/com.h b/gcc/f/com.h
index 5e20e2b..58b0131 100644
--- a/gcc/f/com.h
+++ b/gcc/f/com.h
@@ -265,6 +265,7 @@ tree ffecom_truth_value (tree expr);
tree ffecom_truth_value_invert (tree expr);
tree ffecom_type_expr (ffebld expr);
tree ffecom_which_entrypoint_decl (void);
+void ffe_parse_file ();
/* Define macros. */
diff --git a/gcc/f/parse.c b/gcc/f/parse.c
index 29c6133..fe48b6d 100644
--- a/gcc/f/parse.c
+++ b/gcc/f/parse.c
@@ -26,12 +26,10 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "version.h"
#include "flags.h"
-#define NAME_OF_STDIN "<stdin>"
-
extern FILE *finput;
-int
-yyparse ()
+void
+ffe_parse_file ()
{
ffewhereFile wf;
@@ -46,6 +44,4 @@ yyparse ()
ffe_file (wf, finput);
ffecom_finish_compile ();
-
- return 0;
}
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index ce82f8d..3dbb7f0 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * java-tree.h (java_parse_file): New.
+ * jcf-parse.c (yyparse): Rename java_parse_file.
+ * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
+
2002-03-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
* parse.y (craft_constructor): Return the constructor decl.
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h
index 898c851..aa92f27 100644
--- a/gcc/java/java-tree.h
+++ b/gcc/java/java-tree.h
@@ -1037,6 +1037,7 @@ struct lang_type
#define JCF_u2 unsigned short
extern void java_set_yydebug PARAMS ((int));
+extern void java_parse_file PARAMS ((void));
extern void add_assume_compiled PARAMS ((const char *, int));
extern tree lookup_class PARAMS ((tree));
extern tree lookup_java_constructor PARAMS ((tree, tree));
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c
index d77ddce..9f5b44e 100644
--- a/gcc/java/jcf-parse.c
+++ b/gcc/java/jcf-parse.c
@@ -913,8 +913,8 @@ predefined_filename_p (node)
return 0;
}
-int
-yyparse ()
+void
+java_parse_file ()
{
int filename_count = 0;
char *list, *next;
@@ -1054,7 +1054,7 @@ yyparse ()
resource_filename = IDENTIFIER_POINTER (TREE_VALUE (current_file_list));
compile_resource_file (resource_name, resource_filename);
- return 0;
+ return;
}
current_jcf = main_jcf;
@@ -1156,7 +1156,6 @@ yyparse ()
if (flag_indirect_dispatch)
emit_offset_symbol_table ();
}
- return 0;
}
/* Process all class entries found in the zip file. */
diff --git a/gcc/java/lang.c b/gcc/java/lang.c
index 24e0375..d9e5847 100644
--- a/gcc/java/lang.c
+++ b/gcc/java/lang.c
@@ -221,6 +221,8 @@ static int dependency_tracking = 0;
#define LANG_HOOKS_DECODE_OPTION java_decode_option
#undef LANG_HOOKS_SET_YYDEBUG
#define LANG_HOOKS_SET_YYDEBUG java_set_yydebug
+#undef LANG_HOOKS_PARSE_FILE
+#define LANG_HOOKS_PARSE_FILE java_parse_file
#undef LANG_HOOKS_DUP_LANG_SPECIFIC_DECL
#define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL java_dup_lang_specific_decl
diff --git a/gcc/langhooks-def.h b/gcc/langhooks-def.h
index 06ca4f3..ffc86d3 100644
--- a/gcc/langhooks-def.h
+++ b/gcc/langhooks-def.h
@@ -68,6 +68,7 @@ void lhd_tree_inlining_end_inlining PARAMS ((tree));
#define LANG_HOOKS_IDENTIFIER_SIZE sizeof (struct lang_identifier)
#define LANG_HOOKS_INIT lhd_do_nothing
#define LANG_HOOKS_FINISH lhd_do_nothing
+#define LANG_HOOKS_PARSE_FILE lhd_do_nothing
#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
@@ -141,6 +142,7 @@ int lhd_tree_dump_type_quals PARAMS ((tree));
LANG_HOOKS_POST_OPTIONS, \
LANG_HOOKS_INIT, \
LANG_HOOKS_FINISH, \
+ LANG_HOOKS_PARSE_FILE, \
LANG_HOOKS_CLEAR_BINDING_STACK, \
LANG_HOOKS_GET_ALIAS_SET, \
LANG_HOOKS_EXPAND_CONSTANT, \
diff --git a/gcc/langhooks.h b/gcc/langhooks.h
index 14eb999..c7e43ce 100644
--- a/gcc/langhooks.h
+++ b/gcc/langhooks.h
@@ -104,6 +104,9 @@ struct lang_hooks
/* Called at the end of compilation, as a finalizer. */
void (*finish) PARAMS ((void));
+ /* Parses the entire file. */
+ void (*parse_file) PARAMS ((void));
+
/* Called immediately after parsing to clear the binding stack. */
void (*clear_binding_stack) PARAMS ((void));
diff --git a/gcc/objc/objc-lang.c b/gcc/objc/objc-lang.c
index 2577f65..8f1a68b 100644
--- a/gcc/objc/objc-lang.c
+++ b/gcc/objc/objc-lang.c
@@ -44,6 +44,8 @@ static void objc_post_options PARAMS ((void));
#define LANG_HOOKS_DECODE_OPTION objc_decode_option
#undef LANG_HOOKS_POST_OPTIONS
#define LANG_HOOKS_POST_OPTIONS objc_post_options
+#undef LANG_HOOKS_PARSE_FILE
+#define LANG_HOOKS_PARSE_FILE c_common_parse_file
#undef LANG_HOOKS_STATICP
#define LANG_HOOKS_STATICP c_staticp
#undef LANG_HOOKS_DUP_LANG_SPECIFIC_DECL
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 5ea36ae..a99fdd1 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -2106,9 +2106,9 @@ compile_file ()
timevar_push (TV_PARSE);
- /* Call the parser, which parses the entire file
- (calling rest_of_compilation for each function). */
- yyparse ();
+ /* Call the parser, which parses the entire file (calling
+ rest_of_compilation for each function). */
+ (*lang_hooks.parse_file) ();
/* In case there were missing block closers,
get us back to the global binding level. */
@@ -2116,7 +2116,6 @@ compile_file ()
/* Compilation is now finished except for writing
what's left of the symbol table output. */
-
timevar_pop (TV_PARSE);
if (flag_syntax_only)
@@ -2339,7 +2338,7 @@ rest_of_type_compilation (type, toplev)
timevar_pop (TV_SYMOUT);
}
-/* This is called from finish_function (within yyparse)
+/* This is called from finish_function (within langhooks.parse_file)
after each top-level definition is parsed.
It is supposed to compile that function or variable
and output the assembler code for it.
diff --git a/gcc/tree.h b/gcc/tree.h
index 06b7dd5..d9ad985 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -2859,8 +2859,6 @@ extern tree fold_builtin PARAMS ((tree));
/* The language front-end must define these functions. */
-/* Function called with no arguments to parse and compile the input. */
-extern int yyparse PARAMS ((void));
/* Functions for processing symbol declarations. */
/* Function to enter a new lexical scope.
Takes one argument: always zero when called from outside the front end. */