[cfe-dev] [LLVMdev] Handling SRet on Windows x86

Anton Korobeynikov asl at math.spbu.ru
Wed Mar 27 14:28:19 PDT 2013

Hi Eric,

> From my perspective Win32 is the windows ABI and mingw and cygwin are their own ABIs
No. They are using Windows Platform ABI for almost everything (e.g.
calling API, C runtime, etc.). At least mingw does. The differences
are exactly in unspecified area (e.g. passing / returning structs by

The only difference is C++, where mingw / cygwin follows Itanium ABI
and MSVC - its own.

> especially as we're not targeting the MSVC abi, it's just the windows
> abi?
It seems the proposal patch exactly tries to follow MSVC ABI to keep
to compatibility :)

So, just to summarize. Windows ABI / calling conventions are more or
less documented and both mingw / cygwin and msvc follow it.

The differences are in the undocumented area. Both for C and for C++.
And here there is no "Windows ABI" here at all. Because every compiler
(MSVC, gcc / clang, Borland) does its own stuff. This is why I said
that the proposal naming is confusing.

With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University

More information about the cfe-dev mailing list