Commit ce2f49b3 by Richard Biener Committed by Richard Biener

re PR c++/60553 (segfault in gt_ggc_mx_lang_tree_node in Chromium with LTO)

2014-03-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/60553
	* tree-core.h (tree_type_common): Re-order pointer members
	to reduce recursion depth during GC walks.

	lto/
	* lto-tree.h (lang_tree_node): For types use TYPE_NEXT_VARIANT 
	instead of TREE_CHAIN as chain_next.

From-SVN: r208682
parent 6daa2d91
2014-03-19 Richard Biener <rguenther@suse.de>
PR middle-end/60553
* tree-core.h (tree_type_common): Re-order pointer members
to reduce recursion depth during GC walks.
2014-03-19 Marek Polacek <polacek@redhat.com> 2014-03-19 Marek Polacek <polacek@redhat.com>
PR sanitizer/60569 PR sanitizer/60569
......
2014-03-19 Richard Biener <rguenther@suse.de> 2014-03-19 Richard Biener <rguenther@suse.de>
PR middle-end/60553
* lto-tree.h (lang_tree_node): For types use TYPE_NEXT_VARIANT
instead of TREE_CHAIN as chain_next.
2014-03-19 Richard Biener <rguenther@suse.de>
* lto.c (lto_wpa_write_files): Move call to * lto.c (lto_wpa_write_files): Move call to
lto_promote_cross_file_statics ... lto_promote_cross_file_statics ...
(do_whole_program_analysis): ... here, into the partitioning (do_whole_program_analysis): ... here, into the partitioning
......
...@@ -48,7 +48,7 @@ enum lto_tree_node_structure_enum { ...@@ -48,7 +48,7 @@ enum lto_tree_node_structure_enum {
}; };
union GTY((desc ("lto_tree_node_structure (&%h)"), union GTY((desc ("lto_tree_node_structure (&%h)"),
chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN (&%h.generic)) : NULL"))) chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_TYPE_COMMON) ? ((union lang_tree_node *) %h.generic.type_common.next_variant) : CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) %h.generic.common.chain) : NULL")))
lang_tree_node lang_tree_node
{ {
union tree_node GTY ((tag ("TS_LTO_GENERIC"), union tree_node GTY ((tag ("TS_LTO_GENERIC"),
......
...@@ -1265,11 +1265,11 @@ struct GTY(()) tree_type_common { ...@@ -1265,11 +1265,11 @@ struct GTY(()) tree_type_common {
const char * GTY ((tag ("TYPE_SYMTAB_IS_POINTER"))) pointer; const char * GTY ((tag ("TYPE_SYMTAB_IS_POINTER"))) pointer;
struct die_struct * GTY ((tag ("TYPE_SYMTAB_IS_DIE"))) die; struct die_struct * GTY ((tag ("TYPE_SYMTAB_IS_DIE"))) die;
} GTY ((desc ("debug_hooks->tree_type_symtab_field"))) symtab; } GTY ((desc ("debug_hooks->tree_type_symtab_field"))) symtab;
tree name; tree canonical;
tree next_variant; tree next_variant;
tree main_variant; tree main_variant;
tree context; tree context;
tree canonical; tree name;
}; };
struct GTY(()) tree_type_with_lang_specific { struct GTY(()) tree_type_with_lang_specific {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment