Both llvm-gcc and clang have compatibility with __GNUC__ flag