mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 18:17:30 +08:00
Clean up langhooks
* alias.c:: Include langhooks.h. * emit-rtl.c: Similarly. * toplev.c: Similarly. * tree-inline.c: Similarly. * langhooks-def.h: New, the old langhooks.h. Give the default hooks a common prefix. * langhooks.h: Contents extracted from toplev.h. * toplev.h: Move langhook stuff to langhooks.h. * langhooks.c: Give default hooks a common prefix. * c-lang.c: Include langhooks-def.h. * ada/misc.c: Similarly. * cp/cp-lang.c: Similarly. * f/com.c: Similarly. * java/lang.c: Similarly. * objc/objc-act.c: Similarly. * Makefile.in: Update. * ada/Makefile.in: Similarly. * cp/Make-lang.in: Similarly. * f/Make-lang.in: Similarly. * java/Make-lang.in: Similarly. * objc/Make-lang.in: Similarly. From-SVN: r46813
This commit is contained in:
parent
80f9249ada
commit
d23c55c28c
@ -1,3 +1,20 @@
|
||||
2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
|
||||
|
||||
* alias.c:: Include langhooks.h.
|
||||
* emit-rtl.c: Similarly.
|
||||
* toplev.c: Similarly.
|
||||
* tree-inline.c: Similarly.
|
||||
* langhooks-def.h: New, the old langhooks.h. Give the default
|
||||
hooks a common prefix.
|
||||
* langhooks.h: Contents extracted from toplev.h.
|
||||
* toplev.h: Move langhook stuff to langhooks.h.
|
||||
* langhooks.c: Give default hooks a common prefix.
|
||||
|
||||
* c-lang.c: Include langhooks-def.h.
|
||||
* objc/objc-act.c: Similarly.
|
||||
* Makefile.in: Update.
|
||||
* objc/Make-lang.in: Update.
|
||||
|
||||
2001-11-06 Joseph S. Myers <jsm28@cam.ac.uk>
|
||||
|
||||
* doc/install.texi: Document that configure options not listed in
|
||||
|
@ -1168,7 +1168,8 @@ 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) \
|
||||
$(GGC_H) c-lex.h toplev.h diagnostic.h output.h function.h \
|
||||
$(RTL_H) $(EXPR_H) tree-inline.h insn-config.h integrate.h langhooks.h
|
||||
$(RTL_H) $(EXPR_H) tree-inline.h insn-config.h integrate.h langhooks.h \
|
||||
langhooks-def.h
|
||||
c-lex.o : c-lex.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) c-lex.h \
|
||||
debug.h $(C_TREE_H) \
|
||||
c-pragma.h input.h intl.h flags.h toplev.h output.h \
|
||||
@ -1344,12 +1345,12 @@ prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) Makefile prefix.h
|
||||
convert.o: convert.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h convert.h toplev.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
|
||||
tree-inline.h $(RTL_H) insn-config.h integrate.h langhooks.h langhooks-def.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)
|
||||
tree-inline.o : tree-inline.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) \
|
||||
expr.h flags.h params.h input.h insn-config.h $(INTEGRATE_H) \
|
||||
$(VARRAY_H) $(HASHTAB_H) $(SPLAY_TREE_H) toplev.h \
|
||||
$(VARRAY_H) $(HASHTAB_H) $(SPLAY_TREE_H) toplev.h langhooks.h \
|
||||
$(C_COMMON_H) tree-inline.h
|
||||
print-tree.o : print-tree.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(GGC_H)
|
||||
stor-layout.o : stor-layout.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h \
|
||||
@ -1364,7 +1365,8 @@ toplev.o : toplev.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) function.h \
|
||||
debug.h insn-config.h intl.h $(RECOG_H) Makefile toplev.h \
|
||||
dwarf2out.h sdbout.h dbxout.h $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) \
|
||||
graph.h $(LOOP_H) except.h $(REGS_H) $(TIMEVAR_H) $(lang_options_files) \
|
||||
ssa.h $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) halfpic.h
|
||||
ssa.h $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) halfpic.h \
|
||||
langhooks.h
|
||||
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
|
||||
-DTARGET_NAME=\"$(target_alias)\" \
|
||||
-c $(srcdir)/toplev.c
|
||||
@ -1439,7 +1441,7 @@ xcoffout.o : xcoffout.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) xcoffout.h \
|
||||
emit-rtl.o : emit-rtl.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \
|
||||
function.h $(REGS_H) insn-config.h $(RECOG_H) real.h $(GGC_H) \
|
||||
$(EXPR_H) $(srcdir)/../include/obstack.h hard-reg-set.h bitmap.h toplev.h \
|
||||
$(HASHTAB_H) $(TM_P_H) debug.h
|
||||
$(HASHTAB_H) $(TM_P_H) debug.h langhooks.h
|
||||
real.o : real.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) toplev.h $(TM_P_H)
|
||||
integrate.o : integrate.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \
|
||||
debug.h $(INTEGRATE_H) insn-config.h $(EXPR_H) real.h $(REGS_H) \
|
||||
@ -1545,7 +1547,7 @@ reorg.o : reorg.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) conditions.h hard-reg-set.h \
|
||||
$(RECOG_H) function.h flags.h output.h $(EXPR_H) toplev.h $(PARAMS_H) $(TM_P_H)
|
||||
alias.o : alias.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h hard-reg-set.h \
|
||||
$(BASIC_BLOCK_H) $(REGS_H) toplev.h output.h $(EXPR_H) \
|
||||
$(GGC_H) function.h cselib.h $(TREE_H) $(TM_P_H)
|
||||
$(GGC_H) function.h cselib.h $(TREE_H) $(TM_P_H) langhooks.h
|
||||
regmove.o : regmove.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) insn-config.h \
|
||||
$(RECOG_H) output.h $(REGS_H) hard-reg-set.h flags.h function.h \
|
||||
$(EXPR_H) $(BASIC_BLOCK_H) toplev.h $(TM_P_H) except.h reload.h
|
||||
|
@ -1,3 +1,8 @@
|
||||
2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
|
||||
|
||||
* misc.c: Include langhooks-def.h.
|
||||
* Makefile.in: Update.
|
||||
|
||||
2001-10-30 Robert Dewar <dewar@gnat.com>
|
||||
|
||||
* style.adb:
|
||||
|
@ -2587,7 +2587,7 @@ misc.o : misc.c $(CONFIG_H) $(TREE_H) $(RTL_H) $(srcdir)/../expr.h \
|
||||
$(srcdir)/../flags.h $(srcdir)/../diagnostic.h $(srcdir)/../output.h \
|
||||
$(srcdir)/../except.h ../tm_p.h ../langhooks.h ada.h types.h atree.h \
|
||||
nlists.h elists.h sinfo.h einfo.h namet.h stringt.h uintp.h fe.h \
|
||||
$(ADA_TREE_H) gigi.h
|
||||
$(ADA_TREE_H) gigi.h ../langhooks-def.h
|
||||
|
||||
targtyps.o : targtyps.c $(CONFIG_H) ada.h types.h atree.h nlists.h elists.h \
|
||||
uintp.h sinfo.h einfo.h namet.h snames.h stringt.h urealp.h fe.h \
|
||||
|
@ -6,7 +6,7 @@
|
||||
* *
|
||||
* C Implementation File *
|
||||
* *
|
||||
* $Revision$
|
||||
* $Revision: 1.8 $
|
||||
* *
|
||||
* Copyright (C) 1992-2001 Free Software Foundation, Inc. *
|
||||
* *
|
||||
@ -53,6 +53,7 @@
|
||||
#include "except.h"
|
||||
#include "tm_p.h"
|
||||
#include "langhooks.h"
|
||||
#include "langhooks-def.h"
|
||||
|
||||
#include "ada.h"
|
||||
#include "types.h"
|
||||
|
@ -35,6 +35,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
#include "cselib.h"
|
||||
#include "splay-tree.h"
|
||||
#include "ggc.h"
|
||||
#include "langhooks.h"
|
||||
|
||||
/* The alias sets assigned to MEMs assist the back-end in determining
|
||||
which MEMs can alias which other MEMs. In general, two MEMs in
|
||||
|
@ -39,6 +39,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
#include "insn-config.h"
|
||||
#include "integrate.h"
|
||||
#include "langhooks.h"
|
||||
#include "langhooks-def.h"
|
||||
|
||||
static int c_tree_printer PARAMS ((output_buffer *));
|
||||
static int c_missing_noreturn_ok_p PARAMS ((tree));
|
||||
|
@ -1,3 +1,8 @@
|
||||
2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
|
||||
|
||||
* Make-lang.in: Update.
|
||||
* cp-lang.c: Include langhooks-def.h.
|
||||
|
||||
2001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
||||
|
||||
* pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
|
||||
|
@ -241,7 +241,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
|
||||
cp/cp-lang.o: cp/cp-lang.c $(CXX_TREE_H) toplev.h langhooks.h langhooks-def.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) \
|
||||
cp/operators.def $(TM_P_H) tree-inline.h
|
||||
|
@ -25,6 +25,7 @@ Boston, MA 02111-1307, USA. */
|
||||
#include "cp-tree.h"
|
||||
#include "toplev.h"
|
||||
#include "langhooks.h"
|
||||
#include "langhooks-def.h"
|
||||
|
||||
static HOST_WIDE_INT cxx_get_alias_set PARAMS ((tree));
|
||||
|
||||
|
@ -55,6 +55,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
#include "basic-block.h"
|
||||
#include "ggc.h"
|
||||
#include "debug.h"
|
||||
#include "langhooks.h"
|
||||
|
||||
/* Commonly used modes. */
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
Tue Nov 6 21:17:47 2001 Neil Booth <neil@cat.daikokuya.demon.co.uk>
|
||||
|
||||
* com.c: Include langhooks-def.h.
|
||||
* Make-lang.in: Update.
|
||||
|
||||
2001-11-04 Toon Moene <toon@moene.indiv.nluug.nl>
|
||||
|
||||
* g77.texi: Split off invoke.texi (preliminary to using it
|
||||
|
@ -423,7 +423,7 @@ f/com.o: f/com.c f/proj.h $(CONFIG_H) $(SYSTEM_H) flags.h $(RTL_H) $(TREE_H) \
|
||||
f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h f/intrin.h \
|
||||
f/intrin.def f/lab.h f/symbol.h f/symbol.def f/equiv.h f/storag.h f/global.h \
|
||||
f/name.h f/expr.h f/implic.h f/src.h f/st.h $(GGC_H) toplev.h diagnostic.h \
|
||||
langhooks.h
|
||||
langhooks.h langhooks-def.h
|
||||
f/data.o: f/data.c f/proj.h $(CONFIG_H) $(SYSTEM_H) f/data.h f/bld.h f/bld-op.def \
|
||||
f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def \
|
||||
f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h \
|
||||
|
@ -90,6 +90,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
#include "ggc.h"
|
||||
#include "diagnostic.h"
|
||||
#include "langhooks.h"
|
||||
#include "langhooks-def.h"
|
||||
|
||||
/* VMS-specific definitions */
|
||||
#ifdef VMS
|
||||
|
@ -1,3 +1,8 @@
|
||||
2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
|
||||
|
||||
* lang.c: Include langhooks-def.h.
|
||||
* Make-lang.in: Update.
|
||||
|
||||
2001-10-31 Zack Weinberg <zack@codesourcery.com>
|
||||
|
||||
* Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
|
||||
|
@ -268,7 +268,8 @@ java/jcf-write.o: java/jcf-write.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \
|
||||
java/jv-scan.o: java/jv-scan.c $(CONFIG_H) $(SYSTEM_H) version.h
|
||||
java/jvgenmain.o: java/jvgenmain.c $(CONFIG_H) $(JAVA_TREE_H) $(SYSTEM_H)
|
||||
java/lang.o: java/lang.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h input.h \
|
||||
toplev.h $(SYSTEM_H) $(RTL_H) $(EXPR_H) diagnostic.h langhooks.h
|
||||
toplev.h $(SYSTEM_H) $(RTL_H) $(EXPR_H) diagnostic.h langhooks.h \
|
||||
langhooks-def.h
|
||||
java/mangle.o: java/mangle.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) $(SYSTEM_H) \
|
||||
toplev.h $(GGC_H)
|
||||
java/mangle_name.o: java/mangle_name.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) \
|
||||
|
@ -35,6 +35,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
|
||||
#include "jcf.h"
|
||||
#include "toplev.h"
|
||||
#include "langhooks.h"
|
||||
#include "langhooks-def.h"
|
||||
#include "flags.h"
|
||||
#include "xref.h"
|
||||
#include "ggc.h"
|
||||
|
109
gcc/langhooks-def.h
Normal file
109
gcc/langhooks-def.h
Normal file
@ -0,0 +1,109 @@
|
||||
/* Default macros to initialize the lang_hooks data structure.
|
||||
Copyright 2001 Free Software Foundation, Inc.
|
||||
Contributed by Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef GCC_LANG_HOOKS_DEF_H
|
||||
#define GCC_LANG_HOOKS_DEF_H
|
||||
|
||||
/* Provide a hook routine for alias sets that always returns 1. This is
|
||||
used by languages that haven't deal with alias sets yet. */
|
||||
extern HOST_WIDE_INT hook_get_alias_set_0 PARAMS ((tree));
|
||||
|
||||
/* Note to creators of new hooks:
|
||||
|
||||
The macros in this file should NOT be surrounded by a
|
||||
#ifdef...#endif pair, since this file declares the defaults. Each
|
||||
front end overrides any hooks it wishes to, in the file containing
|
||||
its struct lang_hooks, AFTER including this file.
|
||||
|
||||
Prefix all default hooks with "lhd_". */
|
||||
|
||||
/* See langhooks.h for the definition and documentation of each hook. */
|
||||
|
||||
extern void lhd_do_nothing PARAMS ((void));
|
||||
extern int lhd_decode_option PARAMS ((int, char **));
|
||||
extern HOST_WIDE_INT lhd_get_alias_set PARAMS ((tree));
|
||||
extern void lhd_clear_binding_stack PARAMS ((void));
|
||||
|
||||
/* Declarations of default tree inlining hooks. */
|
||||
tree lhd_tree_inlining_walk_subtrees PARAMS ((tree *, int *,
|
||||
walk_tree_fn,
|
||||
void *, void *));
|
||||
int lhd_tree_inlining_cannot_inline_tree_fn PARAMS ((tree *));
|
||||
int lhd_tree_inlining_disregard_inline_limits PARAMS ((tree));
|
||||
tree lhd_tree_inlining_add_pending_fn_decls PARAMS ((void *, tree));
|
||||
int lhd_tree_inlining_tree_chain_matters_p PARAMS ((tree));
|
||||
int lhd_tree_inlining_auto_var_in_fn_p PARAMS ((tree, tree));
|
||||
tree lhd_tree_inlining_copy_res_decl_for_inlining PARAMS ((tree, tree,
|
||||
tree, void *,
|
||||
int *, void *));
|
||||
int lhd_tree_inlining_anon_aggr_type_p PARAMS ((tree));
|
||||
|
||||
#define LANG_HOOKS_INIT lhd_do_nothing
|
||||
#define LANG_HOOKS_FINISH 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
|
||||
#define LANG_HOOKS_POST_OPTIONS lhd_do_nothing
|
||||
#define LANG_HOOKS_GET_ALIAS_SET lhd_get_alias_set
|
||||
#define LANG_HOOKS_HONOR_READONLY false
|
||||
|
||||
/* Tree inlining hooks. */
|
||||
#define LANG_HOOKS_TREE_INLINING_WALK_SUBTREES lhd_tree_inlining_walk_subtrees
|
||||
#define LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN \
|
||||
lhd_tree_inlining_cannot_inline_tree_fn
|
||||
#define LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS \
|
||||
lhd_tree_inlining_disregard_inline_limits
|
||||
#define LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS \
|
||||
lhd_tree_inlining_add_pending_fn_decls
|
||||
#define LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P \
|
||||
lhd_tree_inlining_tree_chain_matters_p
|
||||
#define LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P \
|
||||
lhd_tree_inlining_auto_var_in_fn_p
|
||||
#define LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING \
|
||||
lhd_tree_inlining_copy_res_decl_for_inlining
|
||||
#define LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P \
|
||||
lhd_tree_inlining_anon_aggr_type_p
|
||||
|
||||
#define LANG_HOOKS_TREE_INLINING_INITIALIZER { \
|
||||
LANG_HOOKS_TREE_INLINING_WALK_SUBTREES, \
|
||||
LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, \
|
||||
LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, \
|
||||
LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS, \
|
||||
LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P, \
|
||||
LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P, \
|
||||
LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING, \
|
||||
LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P \
|
||||
} \
|
||||
|
||||
/* The whole thing. The structure is defined in toplev.h. */
|
||||
#define LANG_HOOKS_INITIALIZER { \
|
||||
LANG_HOOKS_INIT, \
|
||||
LANG_HOOKS_FINISH, \
|
||||
LANG_HOOKS_CLEAR_BINDING_STACK, \
|
||||
LANG_HOOKS_INIT_OPTIONS, \
|
||||
LANG_HOOKS_DECODE_OPTION, \
|
||||
LANG_HOOKS_POST_OPTIONS, \
|
||||
LANG_HOOKS_GET_ALIAS_SET, \
|
||||
LANG_HOOKS_HONOR_READONLY, \
|
||||
LANG_HOOKS_TREE_INLINING_INITIALIZER \
|
||||
}
|
||||
|
||||
#endif /* GCC_LANG_HOOKS_DEF_H */
|
@ -28,18 +28,19 @@ Boston, MA 02111-1307, USA. */
|
||||
#include "insn-config.h"
|
||||
#include "integrate.h"
|
||||
#include "langhooks.h"
|
||||
#include "langhooks-def.h"
|
||||
|
||||
/* Do nothing; in many cases the default hook. */
|
||||
|
||||
void
|
||||
lang_hook_default_do_nothing ()
|
||||
lhd_do_nothing ()
|
||||
{
|
||||
}
|
||||
|
||||
/* Do nothing; the default hook to decode an option. */
|
||||
|
||||
int
|
||||
lang_hook_default_decode_option (argc, argv)
|
||||
lhd_decode_option (argc, argv)
|
||||
int argc ATTRIBUTE_UNUSED;
|
||||
char **argv ATTRIBUTE_UNUSED;
|
||||
{
|
||||
@ -49,7 +50,7 @@ lang_hook_default_decode_option (argc, argv)
|
||||
/* Provide a default routine to clear the binding stack. This is used
|
||||
by languages that don't need to do anything special. */
|
||||
void
|
||||
lang_hook_default_clear_binding_stack ()
|
||||
lhd_clear_binding_stack ()
|
||||
{
|
||||
while (! global_bindings_p ())
|
||||
poplevel (0, 0, 0);
|
||||
@ -59,7 +60,7 @@ lang_hook_default_clear_binding_stack ()
|
||||
is used by languages that don't need to do anything special. */
|
||||
|
||||
HOST_WIDE_INT
|
||||
lang_hook_default_get_alias_set (t)
|
||||
lhd_get_alias_set (t)
|
||||
tree t ATTRIBUTE_UNUSED;
|
||||
{
|
||||
return -1;
|
||||
@ -87,7 +88,7 @@ hook_get_alias_set_0 (t)
|
||||
when the function is called. */
|
||||
|
||||
tree
|
||||
tree_inlining_default_hook_walk_subtrees (tp,subtrees,func,data,htab)
|
||||
lhd_tree_inlining_walk_subtrees (tp,subtrees,func,data,htab)
|
||||
tree *tp ATTRIBUTE_UNUSED;
|
||||
int *subtrees ATTRIBUTE_UNUSED;
|
||||
walk_tree_fn func ATTRIBUTE_UNUSED;
|
||||
@ -102,7 +103,7 @@ tree_inlining_default_hook_walk_subtrees (tp,subtrees,func,data,htab)
|
||||
inlining a given function. */
|
||||
|
||||
int
|
||||
tree_inlining_default_hook_cannot_inline_tree_fn (fnp)
|
||||
lhd_tree_inlining_cannot_inline_tree_fn (fnp)
|
||||
tree *fnp ATTRIBUTE_UNUSED;
|
||||
{
|
||||
return 0;
|
||||
@ -113,7 +114,7 @@ tree_inlining_default_hook_cannot_inline_tree_fn (fnp)
|
||||
if it would exceed inlining limits. */
|
||||
|
||||
int
|
||||
tree_inlining_default_hook_disregard_inline_limits (fn)
|
||||
lhd_tree_inlining_disregard_inline_limits (fn)
|
||||
tree fn ATTRIBUTE_UNUSED;
|
||||
{
|
||||
return 0;
|
||||
@ -127,7 +128,7 @@ tree_inlining_default_hook_disregard_inline_limits (fn)
|
||||
returned. */
|
||||
|
||||
tree
|
||||
tree_inlining_default_hook_add_pending_fn_decls (vafnp, pfn)
|
||||
lhd_tree_inlining_add_pending_fn_decls (vafnp, pfn)
|
||||
void *vafnp ATTRIBUTE_UNUSED;
|
||||
tree pfn;
|
||||
{
|
||||
@ -139,7 +140,7 @@ tree_inlining_default_hook_add_pending_fn_decls (vafnp, pfn)
|
||||
whether it should be walked, copied and preserved across copies. */
|
||||
|
||||
int
|
||||
tree_inlining_default_hook_tree_chain_matters_p (t)
|
||||
lhd_tree_inlining_tree_chain_matters_p (t)
|
||||
tree t ATTRIBUTE_UNUSED;
|
||||
{
|
||||
return 0;
|
||||
@ -149,7 +150,7 @@ tree_inlining_default_hook_tree_chain_matters_p (t)
|
||||
whether VT is an automatic variable defined in function FT. */
|
||||
|
||||
int
|
||||
tree_inlining_default_hook_auto_var_in_fn_p (var, fn)
|
||||
lhd_tree_inlining_auto_var_in_fn_p (var, fn)
|
||||
tree var, fn;
|
||||
{
|
||||
return (DECL_P (var) && DECL_CONTEXT (var) == fn
|
||||
@ -169,8 +170,8 @@ tree_inlining_default_hook_auto_var_in_fn_p (var, fn)
|
||||
match RES. */
|
||||
|
||||
tree
|
||||
tree_inlining_default_hook_copy_res_decl_for_inlining (res, fn, caller,
|
||||
dm, ndp, texps)
|
||||
lhd_tree_inlining_copy_res_decl_for_inlining (res, fn, caller,
|
||||
dm, ndp, texps)
|
||||
tree res, fn, caller;
|
||||
void *dm ATTRIBUTE_UNUSED;
|
||||
int *ndp ATTRIBUTE_UNUSED;
|
||||
@ -184,7 +185,7 @@ tree_inlining_default_hook_copy_res_decl_for_inlining (res, fn, caller,
|
||||
i.e., one whose members are in the same scope as the union itself. */
|
||||
|
||||
int
|
||||
tree_inlining_default_hook_anon_aggr_type_p (t)
|
||||
lhd_tree_inlining_anon_aggr_type_p (t)
|
||||
tree t ATTRIBUTE_UNUSED;
|
||||
{
|
||||
return 0;
|
||||
|
138
gcc/langhooks.h
138
gcc/langhooks.h
@ -1,6 +1,5 @@
|
||||
/* Default macros to initialize the lang_hooks data structure.
|
||||
/* The lang_hooks data structure.
|
||||
Copyright 2001 Free Software Foundation, Inc.
|
||||
Contributed by Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@ -22,92 +21,73 @@ Boston, MA 02111-1307, USA. */
|
||||
#ifndef GCC_LANG_HOOKS_H
|
||||
#define GCC_LANG_HOOKS_H
|
||||
|
||||
/* Provide a hook routine for alias sets that always returns 1. This is
|
||||
used by languages that haven't deal with alias sets yet. */
|
||||
extern HOST_WIDE_INT hook_get_alias_set_0 PARAMS ((tree));
|
||||
/* The following hooks are documented in langhooks.c. Must not be
|
||||
NULL. */
|
||||
|
||||
/* Note to creators of new hooks:
|
||||
struct lang_hooks_for_tree_inlining
|
||||
{
|
||||
union tree_node *(*walk_subtrees) PARAMS ((union tree_node **, int *,
|
||||
union tree_node *(*)
|
||||
(union tree_node **,
|
||||
int *, void *),
|
||||
void *, void *));
|
||||
int (*cannot_inline_tree_fn) PARAMS ((union tree_node **));
|
||||
int (*disregard_inline_limits) PARAMS ((union tree_node *));
|
||||
union tree_node *(*add_pending_fn_decls) PARAMS ((void *,
|
||||
union tree_node *));
|
||||
int (*tree_chain_matters_p) PARAMS ((union tree_node *));
|
||||
int (*auto_var_in_fn_p) PARAMS ((union tree_node *, union tree_node *));
|
||||
union tree_node *(*copy_res_decl_for_inlining) PARAMS ((union tree_node *,
|
||||
union tree_node *,
|
||||
union tree_node *,
|
||||
void *, int *,
|
||||
void *));
|
||||
int (*anon_aggr_type_p) PARAMS ((union tree_node *));
|
||||
};
|
||||
|
||||
The macros in this file should NOT be surrounded by a
|
||||
#ifdef...#endif pair, since this file declares the defaults. Each
|
||||
front end overrides any hooks it wishes to, in the file containing
|
||||
its struct lang_hooks, AFTER including this file. */
|
||||
/* Language-specific hooks. See langhooks-def.h for defaults. */
|
||||
|
||||
/* See toplev.h for the definition and documentation of each hook. */
|
||||
struct lang_hooks
|
||||
{
|
||||
/* Called first, to initialize the front end. */
|
||||
void (*init) PARAMS ((void));
|
||||
|
||||
extern void lang_hook_default_do_nothing PARAMS ((void));
|
||||
extern int lang_hook_default_decode_option PARAMS ((int, char **));
|
||||
extern HOST_WIDE_INT lang_hook_default_get_alias_set PARAMS ((tree));
|
||||
extern void lang_hook_default_clear_binding_stack PARAMS ((void));
|
||||
/* Called last, as a finalizer. */
|
||||
void (*finish) PARAMS ((void));
|
||||
|
||||
#define LANG_HOOKS_INIT lang_hook_default_do_nothing
|
||||
#define LANG_HOOKS_FINISH lang_hook_default_do_nothing
|
||||
#define LANG_HOOKS_CLEAR_BINDING_STACK lang_hook_default_clear_binding_stack
|
||||
#define LANG_HOOKS_INIT_OPTIONS lang_hook_default_do_nothing
|
||||
#define LANG_HOOKS_DECODE_OPTION lang_hook_default_decode_option
|
||||
#define LANG_HOOKS_POST_OPTIONS lang_hook_default_do_nothing
|
||||
#define LANG_HOOKS_GET_ALIAS_SET lang_hook_default_get_alias_set
|
||||
/* Called immediately after parsing to clear the binding stack. */
|
||||
void (*clear_binding_stack) PARAMS ((void));
|
||||
|
||||
#define LANG_HOOKS_HONOR_READONLY false
|
||||
/* Called to initialize options, before any calls to decode_option. */
|
||||
void (*init_options) PARAMS ((void));
|
||||
|
||||
/* Declarations of default tree inlining hooks. */
|
||||
tree tree_inlining_default_hook_walk_subtrees PARAMS ((tree *, int *,
|
||||
walk_tree_fn,
|
||||
void *,
|
||||
void *));
|
||||
int tree_inlining_default_hook_cannot_inline_tree_fn PARAMS ((tree *));
|
||||
int tree_inlining_default_hook_disregard_inline_limits PARAMS ((tree));
|
||||
tree tree_inlining_default_hook_add_pending_fn_decls PARAMS ((void *,
|
||||
tree));
|
||||
int tree_inlining_default_hook_tree_chain_matters_p PARAMS ((tree));
|
||||
int tree_inlining_default_hook_auto_var_in_fn_p PARAMS ((tree, tree));
|
||||
tree tree_inlining_default_hook_copy_res_decl_for_inlining PARAMS ((tree, tree,
|
||||
tree,
|
||||
void *,
|
||||
int *,
|
||||
void *));
|
||||
int tree_inlining_default_hook_anon_aggr_type_p PARAMS ((tree));
|
||||
/* Function called with an option vector as argument, to decode a
|
||||
single option (typically starting with -f or -W or +). It should
|
||||
return the number of command-line arguments it uses if it handles
|
||||
the option, or 0 and not complain if it does not recognise the
|
||||
option. If this function returns a negative number, then its
|
||||
absolute value is the number of command-line arguments used, but,
|
||||
in addition, no language-independent option processing should be
|
||||
done for this option. */
|
||||
int (*decode_option) PARAMS ((int, char **));
|
||||
|
||||
/* Tree inlining hooks. */
|
||||
#define LANG_HOOKS_TREE_INLINING_WALK_SUBTREES \
|
||||
tree_inlining_default_hook_walk_subtrees
|
||||
#define LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN \
|
||||
tree_inlining_default_hook_cannot_inline_tree_fn
|
||||
#define LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS \
|
||||
tree_inlining_default_hook_disregard_inline_limits
|
||||
#define LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS \
|
||||
tree_inlining_default_hook_add_pending_fn_decls
|
||||
#define LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P \
|
||||
tree_inlining_default_hook_tree_chain_matters_p
|
||||
#define LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P \
|
||||
tree_inlining_default_hook_auto_var_in_fn_p
|
||||
#define LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING \
|
||||
tree_inlining_default_hook_copy_res_decl_for_inlining
|
||||
#define LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P \
|
||||
tree_inlining_default_hook_anon_aggr_type_p
|
||||
/* Called when all command line options have been processed. */
|
||||
void (*post_options) PARAMS ((void));
|
||||
|
||||
#define LANG_HOOKS_TREE_INLINING_INITIALIZER { \
|
||||
LANG_HOOKS_TREE_INLINING_WALK_SUBTREES, \
|
||||
LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, \
|
||||
LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, \
|
||||
LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS, \
|
||||
LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P, \
|
||||
LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P, \
|
||||
LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING, \
|
||||
LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P \
|
||||
} \
|
||||
/* Called to obtain the alias set to be used for an expression or type.
|
||||
Returns -1 if the language does nothing special for it. */
|
||||
HOST_WIDE_INT (*get_alias_set) PARAMS ((tree));
|
||||
|
||||
/* The whole thing. The structure is defined in toplev.h. */
|
||||
#define LANG_HOOKS_INITIALIZER { \
|
||||
LANG_HOOKS_INIT, \
|
||||
LANG_HOOKS_FINISH, \
|
||||
LANG_HOOKS_CLEAR_BINDING_STACK, \
|
||||
LANG_HOOKS_INIT_OPTIONS, \
|
||||
LANG_HOOKS_DECODE_OPTION, \
|
||||
LANG_HOOKS_POST_OPTIONS, \
|
||||
LANG_HOOKS_GET_ALIAS_SET, \
|
||||
LANG_HOOKS_HONOR_READONLY, \
|
||||
LANG_HOOKS_TREE_INLINING_INITIALIZER \
|
||||
}
|
||||
/* Nonzero if TYPE_READONLY and TREE_READONLY should always be honored. */
|
||||
bool honor_readonly;
|
||||
|
||||
struct lang_hooks_for_tree_inlining tree_inlining;
|
||||
|
||||
/* Whenever you add entries here, make sure you adjust langhooks.h
|
||||
and langhooks.c accordingly. */
|
||||
};
|
||||
|
||||
/* Each front end provides its own. */
|
||||
extern struct lang_hooks lang_hooks;
|
||||
|
||||
#endif /* GCC_LANG_HOOKS_H */
|
||||
|
@ -80,7 +80,8 @@ objc-act.o : $(srcdir)/objc/objc-act.c \
|
||||
$(CONFIG_H) $(TREE_H) $(RTL_H) $(SYSTEM_H) $(EXPR_H) $(TARGET_H) \
|
||||
$(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)/input.h $(srcdir)/function.h $(srcdir)/output.h $(srcdir)/debug.h \
|
||||
$(srcdir)/langhooks.h $(srcdir)/langhooks-def.h
|
||||
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -I$(srcdir)/objc \
|
||||
-c $(srcdir)/objc/objc-act.c
|
||||
|
||||
|
@ -59,6 +59,7 @@ Boston, MA 02111-1307, USA. */
|
||||
#include "debug.h"
|
||||
#include "target.h"
|
||||
#include "langhooks.h"
|
||||
#include "langhooks-def.h"
|
||||
|
||||
/* This is the default way of generating a method name. */
|
||||
/* I am not sure it is really correct.
|
||||
|
@ -68,6 +68,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
#include "integrate.h"
|
||||
#include "debug.h"
|
||||
#include "target.h"
|
||||
#include "langhooks.h"
|
||||
|
||||
#if defined (DWARF2_UNWIND_INFO) || defined (DWARF2_DEBUGGING_INFO)
|
||||
#include "dwarf2out.h"
|
||||
|
69
gcc/toplev.h
69
gcc/toplev.h
@ -115,75 +115,6 @@ extern void check_global_declarations PARAMS ((union tree_node **, int));
|
||||
extern const char *progname;
|
||||
extern const char *dump_base_name;
|
||||
|
||||
/* The following hooks are documented in langhooks.c. Must not be
|
||||
NULL. */
|
||||
|
||||
struct lang_hooks_for_tree_inlining
|
||||
{
|
||||
union tree_node *(*walk_subtrees) PARAMS ((union tree_node **, int *,
|
||||
union tree_node *(*)
|
||||
(union tree_node **,
|
||||
int *, void *),
|
||||
void *, void *));
|
||||
int (*cannot_inline_tree_fn) PARAMS ((union tree_node **));
|
||||
int (*disregard_inline_limits) PARAMS ((union tree_node *));
|
||||
union tree_node *(*add_pending_fn_decls) PARAMS ((void *,
|
||||
union tree_node *));
|
||||
int (*tree_chain_matters_p) PARAMS ((union tree_node *));
|
||||
int (*auto_var_in_fn_p) PARAMS ((union tree_node *, union tree_node *));
|
||||
union tree_node *(*copy_res_decl_for_inlining) PARAMS ((union tree_node *,
|
||||
union tree_node *,
|
||||
union tree_node *,
|
||||
void *, int *,
|
||||
void *));
|
||||
int (*anon_aggr_type_p) PARAMS ((union tree_node *));
|
||||
};
|
||||
|
||||
/* Language-specific hooks. See langhooks.h for defaults. */
|
||||
|
||||
struct lang_hooks
|
||||
{
|
||||
/* Called first, to initialize the front end. */
|
||||
void (*init) PARAMS ((void));
|
||||
|
||||
/* Called last, as a finalizer. */
|
||||
void (*finish) PARAMS ((void));
|
||||
|
||||
/* Called immediately after parsing to clear the binding stack. */
|
||||
void (*clear_binding_stack) PARAMS ((void));
|
||||
|
||||
/* Called to initialize options, before any calls to decode_option. */
|
||||
void (*init_options) PARAMS ((void));
|
||||
|
||||
/* Function called with an option vector as argument, to decode a
|
||||
single option (typically starting with -f or -W or +). It should
|
||||
return the number of command-line arguments it uses if it handles
|
||||
the option, or 0 and not complain if it does not recognise the
|
||||
option. If this function returns a negative number, then its
|
||||
absolute value is the number of command-line arguments used, but,
|
||||
in addition, no language-independent option processing should be
|
||||
done for this option. */
|
||||
int (*decode_option) PARAMS ((int, char **));
|
||||
|
||||
/* Called when all command line options have been processed. */
|
||||
void (*post_options) PARAMS ((void));
|
||||
|
||||
/* Called to obtain the alias set to be used for an expression or type.
|
||||
Returns -1 if the language does nothing special for it. */
|
||||
HOST_WIDE_INT (*get_alias_set) PARAMS ((tree));
|
||||
|
||||
/* Nonzero if TYPE_READONLY and TREE_READONLY should always be honored. */
|
||||
bool honor_readonly;
|
||||
|
||||
struct lang_hooks_for_tree_inlining tree_inlining;
|
||||
|
||||
/* Whenever you add entries here, make sure you adjust langhooks.h
|
||||
and langhooks.c accordingly. */
|
||||
};
|
||||
|
||||
/* Each front end provides its own. */
|
||||
extern struct lang_hooks lang_hooks;
|
||||
|
||||
/* The hashtable, so that the C front ends can pass it to cpplib. */
|
||||
extern struct ht *ident_hash;
|
||||
|
||||
|
@ -34,6 +34,7 @@ Boston, MA 02111-1307, USA. */
|
||||
#include "varray.h"
|
||||
#include "hashtab.h"
|
||||
#include "splay-tree.h"
|
||||
#include "langhooks.h"
|
||||
|
||||
/* This should be eventually be generalized to other languages, but
|
||||
this would require a shared function-as-trees infrastructure. */
|
||||
|
Loading…
Reference in New Issue
Block a user