re PR c/4910 (imacat <imacat@mail.imacat.idv.tw>)

fix PR bootstrap/4910
gcc/
	PR bootstrap/49190

	Revert:
	2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (struct tree_identifier): Inherit from tree_typed, not
	tree_common.
	(HT_IDENT_TO_GCC_IDENT): Adjust for said change.
	* tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
	TS_BASE instead of TS_COMMON.
	* varasm.c (assemble_name): Remove assert.

gcc/c-family/
	PR bootstrap/49190

	Revert:
	2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.h (struct c_common_identifier): Inherit from tree_typed,
	not tree_common.

From-SVN: r174445
This commit is contained in:
Nathan Froyd 2011-05-30 16:42:05 +00:00
parent b821466067
commit 4f60111fd4
6 changed files with 29 additions and 4 deletions

View File

@ -1,3 +1,17 @@
2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
PR bootstrap/49190
Revert:
2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
* tree.h (struct tree_identifier): Inherit from tree_typed, not
tree_common.
(HT_IDENT_TO_GCC_IDENT): Adjust for said change.
* tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
TS_BASE instead of TS_COMMON.
* varasm.c (assemble_name): Remove assert.
2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
* config.gcc: Keep obselete list sorted.

View File

@ -1,3 +1,13 @@
2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
PR bootstrap/49190
Revert:
2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
* c-common.h (struct c_common_identifier): Inherit from tree_typed,
not tree_common.
2011-05-27 Jakub Jelinek <jakub@redhat.com>
PR c++/49165

View File

@ -307,7 +307,7 @@ enum c_tree_index
/* Identifier part common to the C front ends. Inherits from
tree_identifier, despite appearances. */
struct GTY(()) c_common_identifier {
struct tree_typed common;
struct tree_common common;
struct cpp_hashnode node;
};

View File

@ -382,11 +382,11 @@ initialize_tree_contains_struct (void)
case TS_SSA_NAME:
case TS_CONSTRUCTOR:
case TS_EXP:
case TS_IDENTIFIER:
case TS_STATEMENT_LIST:
MARK_TS_TYPED (code);
break;
case TS_IDENTIFIER:
case TS_DECL_MINIMAL:
case TS_TYPE_COMMON:
case TS_LIST:

View File

@ -1545,11 +1545,11 @@ struct GTY(()) tree_vector {
pointer, and vice versa. */
#define HT_IDENT_TO_GCC_IDENT(NODE) \
((tree) ((char *) (NODE) - sizeof (struct tree_typed)))
((tree) ((char *) (NODE) - sizeof (struct tree_common)))
#define GCC_IDENT_TO_HT_IDENT(NODE) (&((struct tree_identifier *) (NODE))->id)
struct GTY(()) tree_identifier {
struct tree_typed typed;
struct tree_common common;
struct ht_identifier id;
};

View File

@ -2296,6 +2296,7 @@ assemble_name (FILE *file, const char *name)
ultimate_transparent_alias_target (&id);
if (id != id_orig)
name = IDENTIFIER_POINTER (id);
gcc_assert (! TREE_CHAIN (id));
}
assemble_name_raw (file, name);