On 2023-10-15 17:01, Jeffrey Walton wrote:

A quick heads up... We caught a bug report because Clang got into a
code path intended for MSVC.

Thanks for the heads-up.

Was this in Gnulib, or in some other code? If in Gnulib, where?


Like with the Apple issue, detect it like so:

     #if defined(__clang__) && defined(__apple_build_version__)
     # define APPLE_CLANG_VERSION (__clang_major__ * 10000 +
__clang_minor__ * 100 + __clang_patchlevel__)
     #elif defined(__clang__) && defined(_MSC_VER)
     # define MSVC_CLANG_VERSION (__clang_major__ * 10000 +
__clang_minor__ * 100 + __clang_patchlevel__)
     #elif defined(__clang__)
     # define LLVM_CLANG_VERSION  (__clang_major__ * 10000 +
__clang_minor__ * 100 + __clang_patchlevel__)
     #endif

The problem we observed with Apple's Clang is that __clang_major__, __clang_minor__, and __clang_patchlevel__ didn't match standard Clang. Sometimes Apple Clang had a feature that wasn't indicated by those macros in standard Clang (or vice versa, I forget which).

Does Microsoft Clang have a similar problem? Can you give an example, or point to documentation for it?

Reply via email to