Jeff King [off-list ref] writes:
It seems a little weird to me that clang defines __GNUC__, but I
assume there are good reasons for it.
The reason is essentially that clang targets compatibility with GCC
(implementing the same extensions & cie), in the sense "drop in
replacement that should be able to compile legacy code possibly relying
on __GNUC__ and GCC extensions."
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/