Heads up: the -cxx-abi command-line option is gone

Hi all,

Here's a heads up that the -cxx-abi command-line option is gone since
r199250. The C++ ABI now depends entirely on the target triple: MS ABI
for -win32 triples, Itanium otherwise.

If you need to use a specific C++ ABI in a lit test, but don't want to
constrain it to a specific triple, use the %ms_abi_triple or
%itanium_abi_triple substitutions.

Cheers,
Hans

Hi,

if I understand this correct this mean that it is no longer possible to use
Itanium ABI on windows ?
I hope I understand this wrong else this really bad news.

Right now we are using Itanium ABI for clang-cl.exe just because it is
stable.
But we are also using it in custom Cling project and there is no easy way to
use (even if it was complete) MS-ABI.

David

It is. You just have to target MinGW instead of Win32 (e.g. for i386 targets, the target triple should be something like i386-pc-mingw32 instead of i386-pc-win32).

Chip

No, if you want the Itanium C++ ABI, use *-*-mingw32 in the triple.

This change effectively eliminates two possible invalid option combinations:
mingw + -cxx-abi microsoft (silly)
win32 + -cxx-abi itanium (clang's old default)

Both of these ABIs were invalid and subtly broken, as they were a
combination of some C ABI rules covered by the triple and some C++ ABI
rules covered by the other flag.