cp-tree.h (note_decl_for_pch): Remove.
authorRichard Biener <rguenther@suse.de>
Thu, 17 Sep 2015 07:48:09 +0000 (07:48 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 17 Sep 2015 07:48:09 +0000 (07:48 +0000)
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.

From-SVN: r227846

gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl2.c
gcc/cp/semantics.c

index c264f489f80877f9347e9e91963cd7a401bd6d4f..b9aad337fece0082761a7ee5e922184c8d526f53 100644 (file)
@@ -1,3 +1,12 @@
+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
index f8ba795ddcb6af206344f58acc9e22bcf0c4bc86..9611dec3435bbf2f998223a8f45bd5bf11160f0a 100644 (file)
@@ -4691,9 +4691,6 @@ build_clone (tree fn, tree name)
   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;
 }
 
index 784a61664ebc51fb7d1f8923565d39f2ec4b2977..8643e089d03d448fa9d77f189fd65465d7c734a5 100644 (file)
@@ -6253,7 +6253,6 @@ extern tree finish_qualified_id_expr              (tree, tree, bool, bool,
                                                 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);
index 6c1f0842331790a2f6582b7ae5e05ea59ebd1d6b..a5b44e02c141a66d6e319028fc4de004043743eb 100644 (file)
@@ -4511,6 +4511,12 @@ c_parse_final_cleanups (void)
      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;
index 0897ff70d4b03cc4af3725811ba3b866b53f5fbe..7215dc672b6e06f7a7dd7a4c2dceb66b93c9dc2c 100644 (file)
@@ -2951,26 +2951,6 @@ finish_member_declaration (tree decl)
       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