Follow-up Comment #1, bug #23709 (project gnustep):

I added these tests just recently, with the main intention to compare ffcall
with libffi.

These tests to test boarder line yet to my understanding valid cases.  The
attempt to pass structs as parameters:

GSFinePoint:
typedef struct _GSFinePoint GSFinePoint;
struct _GSFinePoint
{
  double x;
  double y;
};
GSFinePoint

typedef struct _GSBitField GSBitField;
struct _GSBitField
{
  unsigned int first:1;
  unsigned int unused:1;
  unsigned int second:1;
};
GSBitField


I'm not sure if those cases ever worked.  Most of the time such structs are
passed by reference and not by value.  Yet I do believe that a correctly
working implementation should pass.  But I can verify that when I started
testing them on different platforms that the last test segfaulted on the
64-bit case.

IIRC, this failure is the result of incorrect/missing layout information
provided by the runtime which we are not ready to handle.  I'm not sure if it
may have been correct with very old versions of the GNU runtime before the new
ObjC features were added and the encoding signatures of GCC changed.

IOW, we have real bugs here but they should not be considered regressions (in
GNUstep) per se.  If you say that your Ubuntu used to work with ffcall and now
it doesn't, then that is a regression.  Yet these tests are not necessarily
related.


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?23709>

_______________________________________________
  Nachricht geschickt von/durch Savannah
  http://savannah.gnu.org/



_______________________________________________
Bug-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gnustep

Reply via email to