+2015-09-17 Richard Biener <rguenther@suse.de>
+
+ * cp-tree.h (note_decl_for_pch): Remove.
+ * class.c (build_clone): Do not call note_decl_for_pch.
+ * semantics.c (finish_member_declaration): Likewise.
+ (note_decl_for_pch): Remove.
+ * decl2.c (c_parse_final_cleanups): Mangle all globals before
+ writing the PCH.
+
2015-09-14 Jason Merrill <jason@redhat.com>
PR c++/44282
SET_DECL_RTL (clone, NULL);
rest_of_decl_compilation (clone, /*top_level=*/1, at_eof);
- if (pch_file)
- note_decl_for_pch (clone);
-
return clone;
}
bool, bool, tsubst_flags_t);
extern void simplify_aggr_init_expr (tree *);
extern void finalize_nrv (tree *, tree, tree);
-extern void note_decl_for_pch (tree);
extern tree omp_reduction_id (enum tree_code, tree, tree);
extern tree cp_remove_omp_priv_cleanup_stmt (tree *, int *, void *);
extern void cp_check_omp_declare_reduction (tree);
In that case we do not want to do anything else. */
if (pch_file)
{
+ /* Mangle all symbols at PCH creation time. */
+ symtab_node *node;
+ FOR_EACH_SYMBOL (node)
+ if (! is_a <varpool_node *> (node)
+ || ! DECL_HARD_REGISTER (node->decl))
+ DECL_ASSEMBLER_NAME (node->decl);
c_common_write_pch ();
dump_tu ();
return;
maybe_add_class_template_decl_list (current_class_type, decl,
/*friend_p=*/0);
}
-
- if (pch_file)
- note_decl_for_pch (decl);
-}
-
-/* DECL has been declared while we are building a PCH file. Perform
- actions that we might normally undertake lazily, but which can be
- performed now so that they do not have to be performed in
- translation units which include the PCH file. */
-
-void
-note_decl_for_pch (tree decl)
-{
- gcc_assert (pch_file);
-
- /* There's a good chance that we'll have to mangle names at some
- point, even if only for emission in debugging information. */
- if (VAR_OR_FUNCTION_DECL_P (decl)
- && !processing_template_decl)
- mangle_decl (decl);
}
/* Finish processing a complete template declaration. The PARMS are