From 7145ef21d8e9c8a3ebe3198f9222a90e9cd060ec Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Sun, 19 Mar 2000 00:37:52 +0000 Subject: [PATCH] tree.h (tree_index): Remove enumerals for integer types. * tree.h (tree_index): Remove enumerals for integer types. (integer_type_kind): New type. (integer_types): New variable. (char_type_node): Adjust. (signed_char_type_node): Likewise. (unsigned_char_type_node): Likewise. (short_integer_type_node): Likewise. (short_unsigned_type_node): Likewise. (integer_type_node): Likewise. (unsigned_type_node): Likewise. (long_integer_type_node): Likewise. (long_unsigned_type_node): Likewise. (long_long_integer_type_node): Likewise. (long_long_unsigned_type_node): Likewise. * tree.c (integer_types): New variable. (init_obstacks): Register it as a root. From-SVN: r32624 --- gcc/ChangeLog | 19 ++++++++++++++++ gcc/tree.c | 2 ++ gcc/tree.h | 61 +++++++++++++++++++++++++++++++-------------------- 3 files changed, 58 insertions(+), 24 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 50cc97f8376..6927fb2ba01 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,22 @@ +2000-03-18 Mark Mitchell + + * tree.h (tree_index): Remove enumerals for integer types. + (integer_type_kind): New type. + (integer_types): New variable. + (char_type_node): Adjust. + (signed_char_type_node): Likewise. + (unsigned_char_type_node): Likewise. + (short_integer_type_node): Likewise. + (short_unsigned_type_node): Likewise. + (integer_type_node): Likewise. + (unsigned_type_node): Likewise. + (long_integer_type_node): Likewise. + (long_unsigned_type_node): Likewise. + (long_long_integer_type_node): Likewise. + (long_long_unsigned_type_node): Likewise. + * tree.c (integer_types): New variable. + (init_obstacks): Register it as a root. + Sat Mar 18 14:38:00 2000 Jason Eckhardt * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as diff --git a/gcc/tree.c b/gcc/tree.c index c6045fffffe..2693995675c 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -296,6 +296,7 @@ static char *built_in_filename; #define BUILT_IN_FILENAME ("") tree global_trees[TI_MAX]; +tree integer_types[itk_none]; /* Init the principal obstacks. */ @@ -333,6 +334,7 @@ init_obstacks () sizeof type_hash_table / sizeof type_hash_table [0], sizeof type_hash_table[0], mark_type_hash); ggc_add_tree_root (global_trees, TI_MAX); + ggc_add_tree_root (integer_types, itk_none); } void diff --git a/gcc/tree.h b/gcc/tree.h index f9503ceca88..9076d5ec39f 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -1515,18 +1515,6 @@ enum tree_index TI_UINTDI_TYPE, TI_UINTTI_TYPE, - TI_CHAR_TYPE, - TI_SIGNED_CHAR_TYPE, - TI_UNSIGNED_CHAR_TYPE, - TI_INTEGER_TYPE, - TI_UNSIGNED_TYPE, - TI_SHORT_INTEGER_TYPE, - TI_SHORT_UNSIGNED_TYPE, - TI_LONG_INTEGER_TYPE, - TI_LONG_UNSIGNED_TYPE, - TI_LONG_LONG_INTEGER_TYPE, - TI_LONG_LONG_UNSIGNED_TYPE, - TI_INTEGER_ZERO, TI_INTEGER_ONE, TI_NULL_POINTER, @@ -1568,18 +1556,6 @@ extern tree global_trees[TI_MAX]; #define unsigned_intDI_type_node global_trees[TI_UINTDI_TYPE] #define unsigned_intTI_type_node global_trees[TI_UINTTI_TYPE] -#define char_type_node global_trees[TI_CHAR_TYPE] -#define signed_char_type_node global_trees[TI_SIGNED_CHAR_TYPE] -#define unsigned_char_type_node global_trees[TI_UNSIGNED_CHAR_TYPE] -#define short_integer_type_node global_trees[TI_SHORT_INTEGER_TYPE] -#define short_unsigned_type_node global_trees[TI_SHORT_UNSIGNED_TYPE] -#define integer_type_node global_trees[TI_INTEGER_TYPE] -#define unsigned_type_node global_trees[TI_UNSIGNED_TYPE] -#define long_integer_type_node global_trees[TI_LONG_INTEGER_TYPE] -#define long_unsigned_type_node global_trees[TI_LONG_UNSIGNED_TYPE] -#define long_long_integer_type_node global_trees[TI_LONG_LONG_INTEGER_TYPE] -#define long_long_unsigned_type_node global_trees[TI_LONG_LONG_UNSIGNED_TYPE] - #define integer_zero_node global_trees[TI_INTEGER_ZERO] #define integer_one_node global_trees[TI_INTEGER_ONE] #define size_zero_node global_trees[TI_SIZE_ZERO] @@ -1602,6 +1578,43 @@ extern tree global_trees[TI_MAX]; #define const_ptr_type_node global_trees[TI_CONST_PTR_TYPE] #define ptrdiff_type_node global_trees[TI_PTRDIFF_TYPE] #define va_list_type_node global_trees[TI_VA_LIST_TYPE] + +/* An enumeration of the standard C integer types. These must be + ordered so that shorter types appear before longer ones. */ +enum integer_type_kind +{ + itk_char, + itk_signed_char, + itk_unsigned_char, + itk_short, + itk_unsigned_short, + itk_int, + itk_unsigned_int, + itk_long, + itk_unsigned_long, + itk_long_long, + itk_unsigned_long_long, + itk_none +}; + +typedef enum integer_type_kind integer_type_kind; + +/* The standard C integer types. Use integer_type_kind to index into + this array. */ +extern tree integer_types[itk_none]; + +#define char_type_node integer_types[itk_char] +#define signed_char_type_node integer_types[itk_signed_char] +#define unsigned_char_type_node integer_types[itk_unsigned_char] +#define short_integer_type_node integer_types[itk_short] +#define short_unsigned_type_node integer_types[itk_unsigned_short] +#define integer_type_node integer_types[itk_int] +#define unsigned_type_node integer_types[itk_unsigned_int] +#define long_integer_type_node integer_types[itk_long] +#define long_unsigned_type_node integer_types[itk_unsigned_long] +#define long_long_integer_type_node integer_types[itk_long_long] +#define long_long_unsigned_type_node integer_types[itk_unsigned_long_long] + #define NULL_TREE (tree) NULL -- 2.30.2