clang-cl defines __clang__ yet does not define __GNUC__. It supports __attribute__` syntax.
__clang__ yet does not define
. It supports