ipa-visibility TLC 2/n

Jan Hubicka hubicka@ucw.cz
Wed Jun 11 08:17:00 GMT 2014


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  <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: 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;



More information about the Gcc-patches mailing list