re PR c/4910 (imacat <imacat@mail.imacat.idv.tw>)
authorNathan Froyd <froydnj@gcc.gnu.org>
Mon, 30 May 2011 16:42:05 +0000 (16:42 +0000)
committerNathan Froyd <froydnj@gcc.gnu.org>
Mon, 30 May 2011 16:42:05 +0000 (16:42 +0000)
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

gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-common.h
gcc/tree.c
gcc/tree.h
gcc/varasm.c

index 2060dcd41bf66cfdbf2ac9763fc1288760941bb9..37eb28cbcf258babaa5839d58718f07d50b70c38 100644 (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.
index 3bdfbab007c66eb38e02258657e22fd28dae0843..4ddc60d9cc5ad1026d19dad5d973df04b72c1f11 100644 (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
index 1b658b131475c138d6fcb270335d8f5f2a5d9698..c63b40d0360dd7e215cc02682516bdc95d05ed54 100644 (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;
 };
 
index 85c0516081f912cc08453e05f1c6695899d96ac4..293e02c46d9d40671fff6b15b1c4b61bb1b4871b 100644 (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:
index 02a999449333b2f750195d611bf78d98d1570a90..c7338baca937b21210cf3f48156c4a98a94cc1af 100644 (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;
 };
 
index 2d2284b88813310f729d6bd129ef0027825e49d4..f46c21b3bde0affad8e8f382ffabe63eed08088f 100644 (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);