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;