diff --git a/gcc/tree-core.h b/gcc/tree-core.h index af75522504fa..e146b133dbd6 100644 --- a/gcc/tree-core.h +++ b/gcc/tree-core.h @@ -2284,15 +2284,32 @@ struct floatn_type_info { /* Matrix describing the structures contained in a given tree code. */ extern bool tree_contains_struct[MAX_TREE_CODES][64]; +#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE, +#define END_OF_BASE_TREE_CODES tcc_exceptional, + + /* Class of tree given its code. */ -extern const enum tree_code_class tree_code_type[]; +constexpr enum tree_code_class tree_code_type[] = { +#include "all-tree.def" +}; + +#undef DEFTREECODE +#undef END_OF_BASE_TREE_CODES /* Each tree code class has an associated string representation. These must correspond to the tree_code_class entries. */ extern const char *const tree_code_class_strings[]; /* Number of argument-words in each kind of tree-node. */ -extern const unsigned char tree_code_length[]; + +#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) LENGTH, +#define END_OF_BASE_TREE_CODES 0, +constexpr unsigned char tree_code_length[] = { +#include "all-tree.def" +}; + +#undef DEFTREECODE +#undef END_OF_BASE_TREE_CODES /* Vector of all alias pairs for global symbols. */ extern GTY(()) vec *alias_pairs; diff --git a/gcc/tree.cc b/gcc/tree.cc index 574bd2e65d97..254b2373dcf6 100644 --- a/gcc/tree.cc +++ b/gcc/tree.cc @@ -74,31 +74,7 @@ along with GCC; see the file COPYING3. If not see #include "asan.h" #include "ubsan.h" -/* Tree code classes. */ -#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE, -#define END_OF_BASE_TREE_CODES tcc_exceptional, - -const enum tree_code_class tree_code_type[] = { -#include "all-tree.def" -}; - -#undef DEFTREECODE -#undef END_OF_BASE_TREE_CODES - -/* Table indexed by tree code giving number of expression - operands beyond the fixed part of the node structure. - Not used for types or decls. */ - -#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) LENGTH, -#define END_OF_BASE_TREE_CODES 0, - -const unsigned char tree_code_length[] = { -#include "all-tree.def" -}; - -#undef DEFTREECODE -#undef END_OF_BASE_TREE_CODES /* Names of tree components. Used for printing out the tree and error messages. */