[Bug libffi/41908] closures fail for some structure arguments containing floats
rfm at gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Nov 12 11:48:00 GMT 2009
------- Comment #4 from rfm at gnu dot org 2009-11-12 11:48 -------
I'm a bit disappointed at the lack of activity on this bug report.
I've been looking at the libffi code myself (though I'm certainly no expert at
this low-level stuff) and have come up with two issues:
1. If I edit libffi-3.0.9rc3/src/x86/ffi64.c and comment out the condition
|| (n == 2 && SSE_CLASS_P (classes[0]) == SSE_CLASS_P (classes[1])) in
ffi_closure_unix64_inner()
then this bug goes away (and the change does not appear to break anything in
the testsuite).
Perhaps someone who understands this stuff could look at this and see why this
change appears to fix things (and what it might be breaking).
2. In the classify_argument() function in the same file, there is a comment
which reads:
/* X86_64_X87UP_CLASS should be preceded by X86_64_X87_CLASS. */
This doesn't match what the code does ... perhaps the code needs to be changed
to match the comment...
classes[i] = X86_64_X87_CLASS;
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41908
More information about the Gcc-bugs
mailing list