GCC may have support for __has_feature but doesn't support __has_builtin

So perform these checks separately