If a function pointer is part of a struct, and it is called from a function marked with ms_abi, the 7th argument will be placed wrongly on the stack. It is placed at 20(%rsp) instead of at (%rsp), which means that programs like wine will fail.
Testcase attached -- Summary: gcc doesn't call functions that are struct arguments correctly Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: m dot b dot lankhorst at gmail dot com GCC build triplet: x86_64-pc-linux-gnu GCC host triplet: x86_64-pc-linux-gnu GCC target triplet: x86_64-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38366