aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/tree.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index 0ce3ddb..7f13a3e 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -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;