This is the round 2 of the PS4 ABI. In this round:
- A new value PS4 has been added to TargetCXXABI::Kind. It is being used for x86_64-scei-ps4 triple only.
- RecordLayoutBuilder.cpp has been logically reverted back to pre r257462 behavior for PS4 abi.
- The test Sema/bitfield-layout.c has been enhanced by adding the PS4 triple, and few test entries that differ between PS4 and other triples, have been put under '#ifdef PS4'. Logically, the test has not changed for triples other than x86_64-scei-ps4. For x86_64-scei-ps4 triple, the test matches pre r257462 behavior.
The test passes on all listed triples on x86 Linux and windows hosts.
I'm not sure why you added a new C++ ABI kind here. The bug fix you're opting out of is not at all specific to C++, and there are more straightforward ways to check the target than checking the C++ ABI kind.
I mean, I have no doubt that eventually there will be some significant C++ ABI bug fix that you don't want to pick up, so I'm not opposed to adding a new C++ ABI kind. It just seems inappropriate to do that in this patch.