After all that, we can finally make tree_exp inherit from typed_tree.
Quite anticlimatic.

-Nathan

gcc/
        * tree.h (struct tree_exp): Inherit from struct typed_tree.
        * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
        instead of TS_COMMON.

diff --git a/gcc/tree.c b/gcc/tree.c
index d63e7d5..16100a6 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -378,6 +378,7 @@ initialize_tree_contains_struct (void)
        case TS_COMPLEX:
        case TS_SSA_NAME:
        case TS_CONSTRUCTOR:
+       case TS_EXP:
          MARK_TS_TYPED (code);
          break;
 
@@ -386,7 +387,6 @@ initialize_tree_contains_struct (void)
        case TS_TYPE:
        case TS_LIST:
        case TS_VEC:
-       case TS_EXP:
        case TS_BLOCK:
        case TS_BINFO:
        case TS_STATEMENT_LIST:
diff --git a/gcc/tree.h b/gcc/tree.h
index c81186a..461674c 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -1905,7 +1905,7 @@ enum omp_clause_default_kind
   (OMP_CLAUSE_SUBCODE_CHECK (NODE, 
OMP_CLAUSE_DEFAULT)->omp_clause.subcode.default_kind)
 
 struct GTY(()) tree_exp {
-  struct tree_common common;
+  struct typed_tree typed;
   location_t locus;
   tree block;
   tree GTY ((special ("tree_exp"),

Reply via email to