fix: unexpected tokens following preprocessor directive

This commit is contained in:
mutouyun 2022-12-25 22:09:01 +08:00
parent ee04080e29
commit 013b2011a8

View File

@ -183,13 +183,19 @@
#endif #endif
#if !defined(LIBIMP_ASSUME) #if !defined(LIBIMP_ASSUME)
# if defined(LIBIMP_CC_CLANG) && __has_builtin(__builtin_assume) # if defined(__has_builtin)
# if __has_builtin(__builtin_assume)
/// \see https://clang.llvm.org/docs/LanguageExtensions.html#langext-builtin-assume /// \see https://clang.llvm.org/docs/LanguageExtensions.html#langext-builtin-assume
# define LIBIMP_ASSUME(...) __builtin_assume(__VA_ARGS__) # define LIBIMP_ASSUME(...) __builtin_assume(__VA_ARGS__)
# elif defined(LIBIMP_CC_GNUC) && __has_builtin(__builtin_unreachable) # elif __has_builtin(__builtin_unreachable)
/// \see https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005funreachable /// \see https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005funreachable
# define LIBIMP_ASSUME(...) do { if (!(__VA_ARGS__)) __builtin_unreachable(); } while (false) # define LIBIMP_ASSUME(...) do { if (!(__VA_ARGS__)) __builtin_unreachable(); } while (false)
# elif defined(LIBIMP_CC_MSVC) # endif
# endif
#endif
#if !defined(LIBIMP_ASSUME)
# if defined(LIBIMP_CC_MSVC)
/// \see https://learn.microsoft.com/en-us/cpp/intrinsics/assume?view=msvc-140 /// \see https://learn.microsoft.com/en-us/cpp/intrinsics/assume?view=msvc-140
# define LIBIMP_ASSUME(...) __assume(__VA_ARGS__) # define LIBIMP_ASSUME(...) __assume(__VA_ARGS__)
# else # else