* ipa-visibility.c (function_and_variable_visibility): Disable
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 Jun 2014 08:15:34 +0000 (08:15 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 Jun 2014 08:15:34 +0000 (08:15 +0000)
virtual table rewriting temporarily on targets not supporting
ONE_ONLY.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211437 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/ipa-visibility.c

index e61b75d..89fcc09 100644 (file)
@@ -1,3 +1,9 @@
+2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-visibility.c (function_and_variable_visibility): Disable
+       virtual table rewriting temporarily on targets not supporting
+       ONE_ONLY.
+
 2014-06-11  Richard Biener  <rguenther@suse.de>
 
        PR middle-end/61437
index 2d63441..4e0fd9e 100644 (file)
@@ -666,9 +666,12 @@ function_and_variable_visibility (bool whole_program)
        }
       update_visibility_by_resolution_info (vnode);
 
-      /* Update virutal tables to point to local aliases where possible.  */
+      /* Update virtual tables to point to local aliases where possible.  */
       if (DECL_VIRTUAL_P (vnode->decl)
-         && !DECL_EXTERNAL (vnode->decl))
+         && !DECL_EXTERNAL (vnode->decl)
+         /* FIXME: currently this optimization breaks on AIX.  Disable it for targets
+            without comdat support for now.  */
+         && SUPPORTS_ONE_ONLY)
        {
          int i;
          struct ipa_ref *ref;