__GNUC_MINOR__
(__GNUC__ > (ma) || __GNUC__ == (ma) && __GNUC_MINOR__ >= (mi))
#if __GNUC__ == 2 && __GNUC_MINOR__ >= 5 && __GNUC_MINOR__ < 7 && !defined(__INTEL_COMPILER)
#if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95)
#if (__GNUC_MINOR__ > 95 || __GNUC__ >= 3)
__GNUC_MINOR__ >= 8
# if __GNUC__ == 2 && __GNUC_MINOR__ >= 7
# if __GNUC__ == 2 && __GNUC_MINOR__ < 5
# if __GNUC__ == 2 && __GNUC_MINOR__ < 7
# define HAVE__GENERIC (4 < __GNUC__ + (9 <= __GNUC_MINOR__))
# if 3 < __GNUC__ + (2 <= __GNUC_MINOR__)
# if 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__)
# elif 4 < __GNUC__ + (5 <= __GNUC_MINOR__)
#define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
(__GNUC__ > (ma) || __GNUC__ == (ma) && __GNUC_MINOR__ >= (mi))
#define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
#elif __GNUC__ >= 5 && __GNUC_MINOR__ > 1
#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8))
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))
int gcc_minor = __GNUC_MINOR__;
#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
(__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)
#elif defined(__GNUC__) && ((__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || \
#if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
#elif (defined(__GNUC__) && ((__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || \
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))