https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57048

--- Comment #10 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
Here's something that appears to work.

Looks like a hack, swims like a hack, and quacks like a hack...

Index: interface.c
===================================================================
--- interface.c (Revision 268104)
+++ interface.c (Arbeitskopie)
@@ -692,6 +692,15 @@
   if (ts1->type == BT_VOID || ts2->type == BT_VOID)
     return true;

+  /* Special case for our C interop types.  There should be a better
+     way of doing this...  */
+
+  if (((ts1->type == BT_INTEGER && ts2->type == BT_DERIVED)
+       || (ts1->type == BT_DERIVED && ts2->type == BT_INTEGER))
+      && ts1->u.derived && ts2->u.derived
+      && ts1->u.derived == ts2->u.derived)
+    return true;
+
   /* The _data component is not always present, therefore check for its
      presence before assuming, that its derived->attr is available.
      When the _data component is not present, then nevertheless the

Reply via email to