aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-streamer-in.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-04-16 13:21:30 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-04-16 13:21:30 +0000
commitac9a074c7249d0a042b827696caa3f694befaee5 (patch)
tree067d3bace4ca7e9ad5771e700d5b82b337858715 /gcc/tree-streamer-in.c
parentfba621209f542447474d7e1b5d33ba21df14f04d (diff)
downloadgcc-ac9a074c7249d0a042b827696caa3f694befaee5.zip
gcc-ac9a074c7249d0a042b827696caa3f694befaee5.tar.gz
gcc-ac9a074c7249d0a042b827696caa3f694befaee5.tar.bz2
re PR c/52977 (internal compiler error: Segmentation fault with `-x c-header' or `-x cxx-header' option)
2012-04-16 Richard Guenther <rguenther@suse.de> PR middle-end/52977 * tree.h (VECTOR_CST_NELTS): Adjust. (struct tree_vector): Add explicit length field. (make_vector_stat): Declare. (make_vector): Define. * tree.c (make_vector_stat): New function. (build_vector_stat): Use it. * tree-streamer-in.c (streamer_alloc_tree): Likewise. From-SVN: r186494
Diffstat (limited to 'gcc/tree-streamer-in.c')
-rw-r--r--gcc/tree-streamer-in.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c
index 97c78cd..a38fb47 100644
--- a/gcc/tree-streamer-in.c
+++ b/gcc/tree-streamer-in.c
@@ -476,10 +476,7 @@ streamer_alloc_tree (struct lto_input_block *ib, struct data_in *data_in,
else if (CODE_CONTAINS_STRUCT (code, TS_VECTOR))
{
HOST_WIDE_INT len = streamer_read_hwi (ib);
- result = ggc_alloc_zone_cleared_tree_node ((len - 1) * sizeof (tree)
- + sizeof (struct tree_vector),
- &tree_zone);
- TREE_SET_CODE (result, VECTOR_CST);
+ result = make_vector (len);
}
else if (CODE_CONTAINS_STRUCT (code, TS_BINFO))
{