* ipa-visibility.c (function_and_variable_visibility): Do not
	dissolve comdat groups when in LTO mode.
From-SVN: r231965
+2015-12-25  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-visibility.c (function_and_variable_visibility): Do not
+       dissolve comdat groups when in LTO mode.
+
 2015-12-25  Andreas Tobler  <andreast@gcc.gnu.org>
 
        * config/rs6000/freebsd64.h: Delete FREEBSD_DYNAMIC_LINKER32/64
 
         DECL_COMDAT (node->decl) = 0;
 
       /* For external decls stop tracking same_comdat_group. It doesn't matter
-        what comdat group they are in when they won't be emitted in this TU.  */
-      if (node->same_comdat_group && DECL_EXTERNAL (node->decl))
+        what comdat group they are in when they won't be emitted in this TU.
+
+        An exception is LTO where we may end up with both external
+        and non-external declarations in the same comdat group in
+        the case declarations was not merged.  */
+      if (node->same_comdat_group && DECL_EXTERNAL (node->decl) && !in_lto_p)
        {
          if (flag_checking)
            {