typeinfo-abi.patch   [plain text]


# Issue also reported and fixed in: http://gcc.gnu.org/PR33678

--- gcc-4.2.1/libstdc++-v3/libsupc++/typeinfo	2007-06-26 11:35:42.000000000 -0400
+++ libstdc++-v3/libsupc++/typeinfo	2007-10-08 12:08:44.000000000 -0400
@@ -100,6 +100,15 @@ namespace std 
     bool operator!=(const type_info& __arg) const
     { return !operator==(__arg); }
     
+   // APPLE LOCAL begin
+   // For ABI stability these virtuals must be ordered: __is_pointer_p, __is_function_p, __do_catch, __do_upcast
+
+   // 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
@@ -113,11 +122,7 @@ namespace std 
     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;
+   // APPLE LOCAL end
 
   protected:
     const char *__name;