aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2005-03-16 02:20:05 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2005-03-16 02:20:05 +0000
commit0ebfd2c928fda823acdd4b5b073a84e5ce92ba39 (patch)
tree3750c12eff0b65397727b2016b257f02c6c89e51 /gcc/tree.c
parentc79e602b6302889036c04a7ca530afc5ae97e053 (diff)
downloadgcc-0ebfd2c928fda823acdd4b5b073a84e5ce92ba39.zip
gcc-0ebfd2c928fda823acdd4b5b073a84e5ce92ba39.tar.gz
gcc-0ebfd2c928fda823acdd4b5b073a84e5ce92ba39.tar.bz2
re PR tree-optimization/17454 (ICE with --enable-checking=fold)
PR tree-optimization/17454 * tree.c (tree_size): Add case for TREE_BINFO. * fold-const.c (fold_checksum_tree): Only clear the overloaded field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set. From-SVN: r96548
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index 0a99598..b1c2458 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -243,6 +243,10 @@ tree_size (tree node)
return (sizeof (struct tree_phi_node)
+ (PHI_ARG_CAPACITY (node) - 1) * sizeof (struct phi_arg_d));
+ case TREE_BINFO:
+ return (offsetof (struct tree_binfo, base_binfos)
+ + VEC_embedded_size (tree, BINFO_N_BASE_BINFOS (node)));
+
case TREE_VEC:
return (sizeof (struct tree_vec)
+ (TREE_VEC_LENGTH (node) - 1) * sizeof(char *));