In Microsoft-compatibility mode, we currently emulate MSVC's patterns in unpacking VA_ARGS by deliberately not treating single commas from macro expansion as argument separators, marking them to be ignored. However, in MSVC's preprocessor, subsequent expansions DO treat these commas as argument separators. Libraries (e.g., Boost, GoogleTest) routinely use this as a workaround for MSVC's non-compliant preprocessor by adding an additional layer of indirection to force recognition of argument separators.
To match this behavior, we now ignore each comma at most once.
Includes a small unit test that validates we match MSVC's behavior as shown in https://gcc.godbolt.org/z/y0twaq