Deavid,
this is patch to disable the vtable rewriting on AIX.  I did not make much 
progress
on figuring out why it fails today - just observed that if I produce .o file 
for the
test and link it against libstdc++ built by older GCC it works. Also objects 
compiled
w/o optimization works, so I am bit puzzled here.

Honza

Index: ChangeLog
===================================================================
--- ChangeLog   (revision 211436)
+++ ChangeLog   (working copy)
@@ -1,3 +1,9 @@
+2014-06-11  Jan Hubicka  <hubi...@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  <rguent...@suse.de>
 
        PR middle-end/61437
Index: ipa-visibility.c
===================================================================
--- ipa-visibility.c    (revision 211436)
+++ ipa-visibility.c    (working copy)
@@ -666,9 +666,12 @@ function_and_variable_visibility (bool w
        }
       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;

Reply via email to