I know msvc does not support [[no_unique_address]], but it supports [[msvc::no_unique_address]]. There is no attribute that matches this behavior for msvc, which leads to silent abi break.
clang 14 is probably going to release when the MSVC breaks abi. Yes we can support msvc::no_unique_address too, but it adds headache for future maintanence.
Also, x86_64-windows-gnu target and GCC targeting windows does support [[no_unique_address]] too, the abi is already "broken" in some form.
I propose to just support [[no_unique_address]] for all targets to prevent future problems.
The way to do a [[msvc::no_unique_address]] is likely to create a new attribute here in Attr.td, then make the spelling be something like:
let Spellings = [CXX11<"msvc", "no_unique_address", N>];
Where N is a number that is the value of __has_attribute (which I note that MSVC has yet to implement?).