libstdc++ ABI break

Benjamin Kosnik bkoz@redhat.com
Fri Oct 5 22:19:00 GMT 2007


> At a guess, you weren't intending to change the ABI there?

No, I did not. Gcc-4.2.0 is ok, so it looks like (as of right now)
gcc-4.2.1 is the only breakage.  

UGH. 

Mark, we should probably try to fix this for 4.2.2.

The obvious patch to revert this would be:

libsupc++/typeinfo
=================================================================== ---
libsupc++/typeinfo  (revision 129018) +++ libsupc++/typeinfo  (working
copy) @@ -128,6 +128,12 @@
     bool operator!=(const type_info& __arg) const
     { return !operator==(__arg); }
     
+   // Return true if this is a pointer type of some kind
+    virtual bool __is_pointer_p() const;
+
+    // Return true if this is a function type
+    virtual bool __is_function_p() const;
+
     // Try and catch a thrown type. Store an adjusted pointer to the
     // caught type in THR_OBJ. If THR_TYPE is not a pointer type, then
     // THR_OBJ points to the thrown object. If THR_TYPE is a pointer
@@ -140,13 +146,6 @@
     // Internally used during catch matching
     virtual bool __do_upcast(const __cxxabiv1::__class_type_info
*__target, void **__obj_ptr) const;
-
-   // Return true if this is a pointer type of some kind
-    virtual bool __is_pointer_p() const;
-
-    // Return true if this is a function type
-    virtual bool __is_function_p() const;
-
   protected:
     const char *__name;

I guess, at this point, if you verify this then I need to issue an
official "oops" in the release notes about this and patch this in
mainline and gcc-4_2-branch, which should be the only thing impacted.

:(

Sorry.

-benjamin



More information about the Libstdc++ mailing list