__GNUC_PREREQ__
#if __STDC_VERSION__ < 199901L && !__GNUC_PREREQ__(3, 0)
#if __GNUC_PREREQ__(4, 8) && defined(__cplusplus)
#if __GNUC_PREREQ__(4, 8) && defined(__cplusplus)
#if __GNUC_PREREQ__(4, 8) && defined(__cplusplus)
#if __GNUC_PREREQ__(2, 7)
#if __GNUC_PREREQ__(2, 7)
#if __GNUC_PREREQ__(2, 96)
#if __GNUC_PREREQ__(3, 1)
#if __GNUC_PREREQ__(3, 3)
#if __GNUC_PREREQ__(3, 4)
#if __GNUC_PREREQ__(4, 1)
#if __GNUC_PREREQ__(4, 6) || __has_builtin(__builtin_unreachable)
#if __GNUC_PREREQ__(4, 3) || __has_attribute(__alloc_size__)
#if __GNUC_PREREQ__(4, 9) || __has_attribute(__alloc_align__)
#if !__GNUC_PREREQ__(2, 7) && __STDC_VERSION__ < 199901
#if (__GNUC_PREREQ__(2, 0) && !defined(__STRICT_ANSI__)) || \
#if !__GNUC_PREREQ__(2, 95)
#if __GNUC_PREREQ__(3, 1) && !defined(__GNUG__)
#if __GNUC_PREREQ__(2, 96)
#if __GNUC_PREREQ__(4, 1)
#if __GNUC_PREREQ__(3, 1)
#if !__GNUC_PREREQ__(2, 7)
#elif __GNUC_PREREQ__(3, 0)
#if !__GNUC_PREREQ__(3, 0)
#if __GNUC_PREREQ__(4, 3)
#if __GNUC_PREREQ__(9, 1) || __has_attribute(__copy__)
#if !__GNUC_PREREQ__(2, 95)
#elif !__GNUC_PREREQ__(4, 6)
#if (defined(__cplusplus) && __cplusplus >= 201103L && __GNUC_PREREQ__(4, 8)) || \
#elif __GNUC_PREREQ__(3, 1) && !defined(__cplusplus)
#if __GNUC_PREREQ__(4, 0)
#if __STDC_VERSION__ < 199901L && !__GNUC_PREREQ__(3, 0)
#if __STDC_VERSION__ < 199901L && !__GNUC_PREREQ__(3, 0)
#if __GNUC_PREREQ__(3, 0)