On AMD64, using objc_msg_sendv leads to a segfault. This is because libobjc uses __builtin_return in objc_msg_sendv, which is broken on AMD64. I'm not sure whether I should create another bug that it's broken on AMD64 or if I should just report it as a bug in libobjc.
The workaround would be to use libffi in objc_msg_sendv. This bug renders libobjc pretty useless on AMD64, because forwarding is used a lot in objc and each time you forward something, it just crashes. This is the reason why I chose blocker as severity, it makes libobjc completely useless on AMD64. And I'm pretty sure this affects other architectures as well. The backtrace is: #0 0x0000000000600c30 in _OBJC_SELECTOR_TABLE () #1 0x0000000000000000 in ?? () If you change objc_msg_sendv to not use __builtin_return but instead return for example NULL, it works (though of course the return value is wrong). I really recommend getting this fixed for the next 4.3 release. Objc support is unusable as it is on AMD64 atm. I'm confused that none of the GNustep guys reported this before, but I remember that they're using libffi somewhere, so most likely they'll use it here as well. -- Summary: objc_msg_sendv crashes on AMD64 Product: gcc Version: 4.3.2 Status: UNCONFIRMED Severity: blocker Priority: P3 Component: libobjc AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: js-gcc at webkeks dot org GCC build triplet: x86_64-linux-gnu GCC host triplet: x86_64-linux-gnu GCC target triplet: x86_64-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39817