re PR c++/46400 (g++ Segmentation Fault on heavily templated project.)

PR c++/46400
	* cp-tree.h (union lang_tree_node): Use TYPE_NEXT_VARIANT
	instead of TYPE_CHAIN for chain_next for types.

	* c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
	instead of TYPE_CHAIN for chain_next for types.

From-SVN: r175389
This commit is contained in:
Jakub Jelinek 2011-06-24 23:11:16 +02:00 committed by Jakub Jelinek
parent a7289eafc8
commit f796c43880
4 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2011-06-24 Jakub Jelinek <jakub@redhat.com>
PR c++/46400
* c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
instead of TYPE_CHAIN for chain_next for types.
2011-06-24 Richard Henderson <rth@redhat.com>
* config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.

View File

@ -238,7 +238,7 @@ extern char C_SIZEOF_STRUCT_LANG_IDENTIFIER_isnt_accurate
/* The resulting tree type. */
union GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"),
chain_next ("TREE_CODE (&%h.generic) == INTEGER_TYPE ? (union lang_tree_node *) TYPE_NEXT_VARIANT (&%h.generic) : CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN (&%h.generic)) : NULL"))) lang_tree_node
chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_TYPE_COMMON) ? (union lang_tree_node *) TYPE_NEXT_VARIANT (&%h.generic) : CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN (&%h.generic)) : NULL"))) lang_tree_node
{
union tree_node GTY ((tag ("0"),
desc ("tree_node_structure (&%h)")))

View File

@ -1,3 +1,9 @@
2011-06-24 Jakub Jelinek <jakub@redhat.com>
PR c++/46400
* cp-tree.h (union lang_tree_node): Use TYPE_NEXT_VARIANT
instead of TYPE_CHAIN for chain_next for types.
2011-06-23 Gabriel Charette <gchare@google.com>
* name-lookup.h (cp_binding_level): Removed unused

View File

@ -729,7 +729,7 @@ enum cp_tree_node_structure_enum {
/* The resulting tree type. */
union GTY((desc ("cp_tree_node_structure (&%h)"),
chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN (&%h.generic)) : NULL"))) lang_tree_node {
chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_TYPE_COMMON) ? ((union lang_tree_node *) TYPE_NEXT_VARIANT (&%h.generic)) : CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN (&%h.generic)) : NULL"))) lang_tree_node {
union tree_node GTY ((tag ("TS_CP_GENERIC"),
desc ("tree_node_structure (&%h)"))) generic;
struct template_parm_index_s GTY ((tag ("TS_CP_TPI"))) tpi;