diff options
Diffstat (limited to 'gcc/tree-ssanames.c')
-rw-r--r-- | gcc/tree-ssanames.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c index d138a793ebf..cc12f28d7d4 100644 --- a/gcc/tree-ssanames.c +++ b/gcc/tree-ssanames.c @@ -1,5 +1,5 @@ /* Generic routines for manipulating SSA_NAME expressions - Copyright (C) 2003 Free Software Foundation, Inc. + Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GCC. @@ -184,9 +184,7 @@ make_ssa_name (tree var, tree stmt) gcc_assert (DECL_P (var) || TREE_CODE (var) == INDIRECT_REF); - gcc_assert (!stmt - || IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (stmt))) - || TREE_CODE (stmt) == PHI_NODE); + gcc_assert (!stmt || EXPR_P (stmt) || TREE_CODE (stmt) == PHI_NODE); /* If our free list has an element, then use it. Also reuse the SSA version number of the element on the free list which helps @@ -207,6 +205,8 @@ make_ssa_name (tree var, tree stmt) memset (t, 0, tree_size (t)); TREE_SET_CODE (t, SSA_NAME); SSA_NAME_VERSION (t) = save_version; + gcc_assert (ssa_name (save_version) == NULL); + VARRAY_TREE (ssa_names, save_version) = t; } else { @@ -262,6 +262,7 @@ release_ssa_name (tree var) defining statement. */ if (! SSA_NAME_IN_FREE_LIST (var)) { + VARRAY_TREE (ssa_names, SSA_NAME_VERSION (var)) = NULL; SSA_NAME_IN_FREE_LIST (var) = 1; TREE_CHAIN (var) = free_ssanames; free_ssanames = var; |