if (BASELINK_P (value_binding))
/* NAME is some overloaded functions. */
value_binding = BASELINK_FUNCTIONS (value_binding);
+ /* Two conversion operators that convert to the same type
+ may have different names. (See
+ mangle_conv_op_name_for_type.) To avoid recording the
+ same conversion operator declaration more than once we
+ must check to see that the same operator was not already
+ found under another name. */
+ if (IDENTIFIER_TYPENAME_P (name)
+ && is_overloaded_fn (value_binding))
+ {
+ tree fns;
+ for (fns = value_binding; fns; fns = OVL_NEXT (fns))
+ if (IDENTIFIER_CLASS_VALUE (DECL_NAME (OVL_CURRENT (fns))))
+ return;
+ }
pushdecl_class_level (value_binding);
}
}
--- /dev/null
+typedef struct _GdkDrawable GdkDrawable;
+typedef struct _GdkDrawable GdkBitmap;
+typedef struct _GdkDrawable GdkPixmap;
+
+class Drawable
+{
+public:
+ operator GdkDrawable* () const;
+};
+
+
+class Pixmap : public Drawable
+{
+public:
+ operator GdkPixmap* () const;
+
+};
+
+
+class Bitmap : public Pixmap
+{
+public:
+ operator GdkBitmap* () const;
+
+};
+
+class Event
+{
+};
+
+Bitmap::operator GdkBitmap* () const
+{
+ return 0;
+}