[LLVMdev] Handling SRet on Windows x86
arcata at gmail.com
Thu Mar 28 12:35:21 PDT 2013
On Thu, Mar 28, 2013 at 12:19 PM, Óscar Fuentes <ofv at wanadoo.es> wrote:
> What do you mean by "the full platform"? Every propietary extension that
> MS came with along all these years? (From structured exceptions to
> whatever Windows RT requires?)
> MinGW is very well capable of using the Win32 API. There is partial or
> non-existent support for extensions such as COM, but those are not part
> of the "ABI", for sure.
Mingw interoperates with the Win32 API, yes, but it's able to without
having full C ABI compatibility with MSVC. For one, most of the Win32 API
has its own "stdcall" calling convention, which is different from either
Mingw's or MSVC's "cdecl" ABIs. The Win32 API also avoids passing or
returning structs or other non-primitives by value, because C and Pascal
compilers back in the early 90s didn't behave consistently outside of a
small subset of C functionality, and MSVC and Mingw still don't.
> Irrelevant too, since those "MSVC binaries" (whatever that means) are
> usable by the other compilers.
Not unless the library authors take pains to only export APIs that conform
to the subset of MSVC's and Mingw's ABIs that are compatible.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev