Fixed GCC release build
#endif
#if defined(ZYDIS_RELEASE)
-# if defined(ZYDIS_GNUC)
+# if defined(ZYDIS_CLANG) // GCC eagerly evals && RHS, we have to use nested ifs.
# if __has_builtin(__builtin_unreachable)
# define ZYDIS_UNREACHABLE __builtin_unreachable()
# else
# define ZYDIS_UNREACHABLE
# endif
+# elif defined(ZYDIS_GCC) && ((__GNUC__ == 4 && __GNUC_MINOR__ > 4) || __GNUC__ > 4)
+# define ZYDIS_UNREACHABLE __builtin_unreachable()
# elif defined(ZYDIS_MSVC)
# define ZYDIS_UNREACHABLE __assume(0)
# else
