aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <doug.gregor@gmail.com>2007-03-28 01:56:58 +0000
committerMike Stump <mrs@gcc.gnu.org>2007-03-28 01:56:58 +0000
commit00ffc97ce59b8695a48933ed1d1d0835aaface6c (patch)
tree8acdd6fce8f5692e190ad047db59b4f8614ce5d2
parent82f1c4b5fa00d766dfbcc089b2d23663cc96cb96 (diff)
downloadgcc-00ffc97ce59b8695a48933ed1d1d0835aaface6c.zip
gcc-00ffc97ce59b8695a48933ed1d1d0835aaface6c.tar.gz
gcc-00ffc97ce59b8695a48933ed1d1d0835aaface6c.tar.bz2
tree.c (tree_contains_struct): Permit 512 tree codes.
2007-03-27 Douglas Gregor <doug.gregor@gmail.com> * 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
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/tree.c2
-rw-r--r--gcc/tree.h8
3 files changed, 14 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index add07bc..246d5e4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2007-03-27 Douglas Gregor <doug.gregor@gmail.com>
+
+ * 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 <aesok@post.ru>
* config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
diff --git a/gcc/tree.c b/gcc/tree.c
index baf94b2..411e3f1 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 6cd846d..429b202 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;