http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60567

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
--- gcc/symtab.c.jj    2014-03-21 22:23:43.000000000 +0100
+++ gcc/symtab.c    2014-04-09 17:37:40.709523997 +0200
@@ -1312,9 +1312,13 @@ symtab_get_symbol_partitioning_class (sy
   /* Linker discardable symbols are duplicated to every use unless they are
      keyed.
      Keyed symbols or those.  */
-  if (DECL_ONE_ONLY (node->decl)
+  if ((HAVE_LTO_PLUGIN
+       && (flag_use_linker_plugin
+       || (HAVE_LTO_PLUGIN == 2
+           && !global_options_set.x_flag_use_linker_plugin))
+       ? (DECL_ONE_ONLY (node->decl) && !node->forced_by_abi)
+       : DECL_COMDAT (node->decl))
       && !node->force_output
-      && !node->forced_by_abi
       && !symtab_used_from_object_file_p (node))
     return SYMBOL_DUPLICATE;


seems to make the ICE go away with -fno-use-linker-plugin or when the linker
doesn't support the plugin at all, didn't have to change ipa.c similarly.
But why is this happening and why this helps needs analyzing.

Reply via email to