> Hi Jan,
> 
> 
> 
> r210901 | hubicka | 2014-05-25 00:00:14 +0200 (So, 25. Mai 2014)
> 
> 
> this checkin broke the aarch64 build:
> 
> 
> 
> ./../gcc-trunk/gcc/config/aarch64/aarch64.c: In function ‘void 
> aarch64_elf_asm_named_section(const char*, unsigned int, tree)’:
> ../../gcc-trunk/gcc/tree.h:2326:26: error: ‘decl_comdat_group’ was not 
> declared in this scope
>    decl_comdat_group (NODE)
>                           ^
> ../../gcc-trunk/gcc/tree.h:226:15: note: in definition of macro ‘TREE_CHECK’
>  (tree_check ((T), __FILE__, __LINE__, __FUNCTION__, (CODE)))
>                ^
> ../../gcc-trunk/gcc/tree.h:925:19: note: in expansion of macro 
> ‘IDENTIFIER_NODE_CHECK’
>    ((const char *) IDENTIFIER_NODE_CHECK (NODE)->identifier.id.str)
>                    ^
> ../../gcc-trunk/gcc/config/aarch64/aarch64.c:8136:8: note: in expansion of 
> macro ‘IDENTIFIER_POINTER’
>         IDENTIFIER_POINTER (DECL_COMDAT_GROUP (decl)));
>         ^
> ../../gcc-trunk/gcc/config/aarch64/aarch64.c:8136:28: note: in expansion of 
> macro ‘DECL_COMDAT_GROUP’
>         IDENTIFIER_POINTER (DECL_COMDAT_GROUP (decl)));
> 
Hi,
the problem is that decl_comdat_group used by DECL_COMDAT_GROUP macro is
defined in cgraph.h that is not inlined.  This patch moves is offline making
tree.h self contained.

Does it solve the pbootstrap problem?

Honza

Index: cgraph.h
===================================================================
--- cgraph.h    (revision 210908)
+++ cgraph.h    (working copy)
@@ -1621,14 +1621,4 @@ symtab_in_same_comdat_p (symtab_node *on
 
   return one->get_comdat_group () == two->get_comdat_group ();
 }
-
-/* Return comdat group of DECL.  */
-static inline tree
-decl_comdat_group (tree node)
-{
-  struct symtab_node *snode = symtab_get_node (node);
-  if (!snode)
-    return NULL;
-  return snode->get_comdat_group ();
-}
 #endif  /* GCC_CGRAPH_H  */
Index: tree.h
===================================================================
--- tree.h      (revision 210908)
+++ tree.h      (working copy)
@@ -3431,6 +3434,7 @@ tree_operand_check_code (const_tree __t,
    || ((NODE) && TREE_TYPE ((NODE)) == error_mark_node))
 
 extern tree decl_assembler_name (tree);
+extern tree decl_comdat_group (tree);
 
 /* Compute the number of bytes occupied by 'node'.  This routine only
    looks at TREE_CODE and, if the code is TREE_VEC, TREE_VEC_LENGTH.  */
Index: tree.c
===================================================================
--- tree.c      (revision 210908)
+++ tree.c      (working copy)
@@ -603,6 +603,16 @@ decl_assembler_name (tree decl)
   return DECL_WITH_VIS_CHECK (decl)->decl_with_vis.assembler_name;
 }
 
+/* Return comdat group of DECL.  */
+tree
+decl_comdat_group (tree node)
+{
+  struct symtab_node *snode = symtab_get_node (node);
+  if (!snode)
+    return NULL;
+  return snode->get_comdat_group ();
+}
+
 /* Compute the number of bytes occupied by a tree with code CODE.
    This function cannot be used for nodes that have variable sizes,
    including TREE_VEC, INTEGER_CST, STRING_CST, and CALL_EXPR.  */

Reply via email to