From d78e771d468c7280b95c7dbbafcdd87d69357d80 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Mon, 7 Apr 2003 06:03:17 +0000 Subject: tree.c (tree_size): For all 'c' and 'x' nodes... * tree.c (tree_size): For all 'c' and 'x' nodes, look directly at the sizes of the relevant structures, rather than relying on TREE_CODE_LENGTH. Call lang_hooks.tree_size to get the sizes of any such we don't know about. Use lang_hooks.identifier_size for IDENTIFIER_NODE. (initializer_zerop): Use CONSTRUCTOR_ELTS. * tree.def: Update commentary. Make fourth element of the definition for all 'c' and 'x' nodes zero. * langhooks.h: New hook, tree_size / LANG_HOOKS_TREE_SIZE. * langhooks-def.h: Update to match. * langhooks.c: New default, lhd_tree_size. * c-common.def (SRCLOC): Kill. * c-pretty-print.c (pp_c_postfix_expression [case SRCLOC]): Remove entirely - was already #if-ed out. ada: * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero. * misc.c (gnat_tree_size): New function. (LANG_HOOKS_TREE_SIZE): Override. cp: * cp-tree.def: Make fourth element for all 'c' and 'x' nodes zero. * cp-lang.c (cp_tree_size): New function. (LANG_HOOKS_TREE_SIZE): Override. * cp-tree.h (SOURCE_LOCUS, SRCLOC_FILE, SRCLOC_LINE, struct tree_srcloc, TS_CP_COMMON, TS_CP_SRCLOC): Kill. (union lang_tree_node): Remove common and srcloc members. (build_srcloc_here): Don't prototype. * decl.c (cp_tree_node_structure): Kill SRCLOC case. * pt.c (pending_templates): Correct comment. * tree.c (build_srcloc, build_srcloc_here): Kill. From-SVN: r65323 --- gcc/ada/misc.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'gcc/ada/misc.c') diff --git a/gcc/ada/misc.c b/gcc/ada/misc.c index 1a5c9db..93a52eb 100644 --- a/gcc/ada/misc.c +++ b/gcc/ada/misc.c @@ -79,6 +79,7 @@ extern FILE *asm_out_file; extern int save_argc; extern char **save_argv; +static size_t gnat_tree_size PARAMS ((enum tree_code)); static bool gnat_init PARAMS ((void)); static void gnat_init_options PARAMS ((void)); static int gnat_decode_option PARAMS ((int, char **)); @@ -98,6 +99,8 @@ static rtx gnat_expand_expr PARAMS ((tree, rtx, enum machine_mode, #define LANG_HOOKS_NAME "GNU Ada" #undef LANG_HOOKS_IDENTIFIER_SIZE #define LANG_HOOKS_IDENTIFIER_SIZE sizeof (struct tree_identifier) +#undef LANG_HOOKS_TREE_SIZE +#define LANG_HOOKS_TREE_SIZE gnat_tree_size #undef LANG_HOOKS_INIT #define LANG_HOOKS_INIT gnat_init #undef LANG_HOOKS_INIT_OPTIONS @@ -335,6 +338,19 @@ internal_error_function (msgid, ap) Compiler_Abort (fp, -1); } +/* Langhook for tree_size: determine size of our 'x' and 'c' nodes. */ +static size_t +gnat_tree_size (enum tree_code code) +{ + switch (code) + { + case GNAT_LOOP_ID: return sizeof (struct tree_loop_id); + default: + abort (); + } + /* NOTREACHED */ +} + /* Perform all the initialization steps that are language-specific. */ static bool -- cgit v1.1