diff options
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -245,6 +245,8 @@ static int do_identifier_warnings; /* Unique id for next decl created. */ static int next_decl_uid; +/* Unique id for next type created. */ +static int next_type_uid = 1; extern char *mode_name[]; @@ -908,11 +910,7 @@ make_node (code) break; case 't': - { - static unsigned next_type_uid = 1; - - TYPE_UID (t) = next_type_uid++; - } + TYPE_UID (t) = next_type_uid++; TYPE_ALIGN (t) = 1; TYPE_MAIN_VARIANT (t) = t; break; @@ -987,6 +985,11 @@ copy_node (node) TREE_CHAIN (t) = 0; + if (TREE_CODE_CLASS (code) == 'd') + DECL_UID (t) = next_decl_uid++; + else if (TREE_CODE_CLASS (code) == 't') + TYPE_UID (t) = next_type_uid++; + TREE_PERMANENT (t) = (current_obstack == &permanent_obstack); return t; |