From 00ffc97ce59b8695a48933ed1d1d0835aaface6c Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Wed, 28 Mar 2007 01:56:58 +0000 Subject: [PATCH] tree.c (tree_contains_struct): Permit 512 tree codes. 2007-03-27 Douglas Gregor * tree.c (tree_contains_struct): Permit 512 tree codes. * tree.h (tree_contains_struct): Ditto. (MAX_TREE_CODES): Ditto. (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add SPARE member to store remaining padding bits. From-SVN: r123287 --- gcc/ChangeLog | 8 ++++++++ gcc/tree.c | 2 +- gcc/tree.h | 8 +++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index add07bc3e6a..246d5e43686 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2007-03-27 Douglas Gregor + + * tree.c (tree_contains_struct): Permit 512 tree codes. + * tree.h (tree_contains_struct): Ditto. + (MAX_TREE_CODES): Ditto. + (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add + SPARE member to store remaining padding bits. + 2007-03-27 Anatoly Sokolov * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4' diff --git a/gcc/tree.c b/gcc/tree.c index baf94b2db0a..411e3f16746 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -168,7 +168,7 @@ static unsigned int attribute_hash_list (tree, hashval_t); tree global_trees[TI_MAX]; tree integer_types[itk_none]; -unsigned char tree_contains_struct[256][64]; +unsigned char tree_contains_struct[MAX_TREE_CODES][64]; /* Number of operands for each OpenMP clause. */ unsigned const char omp_clause_num_ops[] = diff --git a/gcc/tree.h b/gcc/tree.h index 6cd846d7cc0..429b2022c27 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -41,7 +41,8 @@ enum tree_code { #undef DEFTREECODE -extern unsigned char tree_contains_struct[256][64]; +#define MAX_TREE_CODES 512 +extern unsigned char tree_contains_struct[MAX_TREE_CODES][64]; #define CODE_CONTAINS_STRUCT(CODE, STRUCT) (tree_contains_struct[(CODE)][(STRUCT)]) /* Number of language-independent tree codes. */ @@ -80,7 +81,6 @@ extern const char *const tree_code_class_strings[]; #define TREE_CODE_CLASS_STRING(CLASS)\ tree_code_class_strings[(int) (CLASS)] -#define MAX_TREE_CODES 256 extern const enum tree_code_class tree_code_type[]; #define TREE_CODE_CLASS(CODE) tree_code_type[(int) (CODE)] @@ -363,7 +363,7 @@ union tree_ann_d; struct tree_base GTY(()) { - ENUM_BITFIELD(tree_code) code : 8; + ENUM_BITFIELD(tree_code) code : 16; unsigned side_effects_flag : 1; unsigned constant_flag : 1; @@ -392,6 +392,8 @@ struct tree_base GTY(()) unsigned lang_flag_6 : 1; unsigned visited : 1; + unsigned spare : 24; + /* FIXME tuples: Eventually, we need to move this somewhere external to the trees. */ union tree_ann_d *ann;