lto-common.c (unify_scc): Do not merge anonymous NAMESPACE_DECLs.
authorRichard Biener <rguenther@suse.de>
Thu, 10 Oct 2019 09:56:35 +0000 (09:56 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 10 Oct 2019 09:56:35 +0000 (09:56 +0000)
2019-10-10  Richard Biener  <rguenther@suse.de>

* lto-common.c (unify_scc): Do not merge anonymous NAMESPACE_DECLs.

From-SVN: r276796

gcc/lto/ChangeLog
gcc/lto/lto-common.c

index e4102320795448767eec421601bda34bb06134fc..393e1c1c550083b9c518c96a3170c1f2e26ba7fc 100644 (file)
@@ -1,3 +1,7 @@
+2019-10-10  Richard Biener  <rguenther@suse.de>
+
+       * lto-common.c (unify_scc): Do not merge anonymous NAMESPACE_DECLs.
+
 2019-10-04  Joseph Myers  <joseph@codesourcery.com>
 
        * lto-lang.c (flag_isoc2x): New variable.
index 9a17933d094b212cd28242cb8e5289d8f8c6217f..e5c15f2b8449b044d2bbd5daddda3cc434b648a8 100644 (file)
@@ -1646,11 +1646,13 @@ unify_scc (class data_in *data_in, unsigned from,
       tree t = streamer_tree_cache_get_tree (cache, from + i);
       scc->entries[i] = t;
       /* Do not merge SCCs with local entities inside them.  Also do
-        not merge TRANSLATION_UNIT_DECLs and anonymous namespace types.  */
+        not merge TRANSLATION_UNIT_DECLs and anonymous namespaces
+        and types therein types.  */
       if (TREE_CODE (t) == TRANSLATION_UNIT_DECL
          || (VAR_OR_FUNCTION_DECL_P (t)
              && !(TREE_PUBLIC (t) || DECL_EXTERNAL (t)))
          || TREE_CODE (t) == LABEL_DECL
+         || (TREE_CODE (t) == NAMESPACE_DECL && !DECL_NAME (t))
          || (TYPE_P (t)
              && type_with_linkage_p (TYPE_MAIN_VARIANT (t))
              && type_in_anonymous_namespace_p (TYPE_MAIN_VARIANT (t))))