diff options
author | Richard Guenther <rguenther@suse.de> | 2012-04-16 13:21:30 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-04-16 13:21:30 +0000 |
commit | ac9a074c7249d0a042b827696caa3f694befaee5 (patch) | |
tree | 067d3bace4ca7e9ad5771e700d5b82b337858715 /gcc/tree-streamer-in.c | |
parent | fba621209f542447474d7e1b5d33ba21df14f04d (diff) | |
download | gcc-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.c | 5 |
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)) { |