[LLVMdev] Handling SRet on Windows x86

Óscar Fuentes
Thu, 28 Mar 2013 18:39:19 -0000

Joe Groff <arcata at gmail.com> writes:


>> MSVC is not the system compiler. Certainly, it is not distributed with
>> the system. Actually, MSVC was a secondary player on Windows for a long
>> time, with several other C++ ABI-incompatible options available.
>
>
> It isn't shipped with the system, but it's freely available as part
of the
> Windows SDK,

That's a recent development which is irrelevant to this discussion.
g++ and clang++ are freely available too.

> and most binary library packages for Windows are shipped as
> MSVC binaries.

Irrelevant too, since those "MSVC binaries" (whatever that means) are
usable by the other compilers.

> *-*-win32 and *-*-mingw32 are different targets. Aside from C++, it's
> useful to be able to use Clang as an MSVC compatible C99 compiler, since
> MSVC itself only supports C89, and it's useful for LLVM to be usable by
> other frontends that want MSVC compatibility. The win32 target can provide
> that independent of the mingw target, which should of course remain
> compatible with mingw's ABI.

It only makes sense to talk about "MinGW's ABI" vs "MSVC
ABI" in the
context of C++, so your mention of C99 is also irrelevant.