From 9db4c0f6bc0dd11c77b54296fce6b8afe18f4325 Mon Sep 17 00:00:00 2001 From: Steffen Nurpmeso Date: Thu, 9 Jun 2022 18:26:38 +0800 Subject: [PATCH] su_INLINE: eh no; give up, share detection with clang but for a thing Upstream-Status: Backport[https://git.sdaoden.eu/browse/s-nail.git/commit/?id=de2a44c393a39d80ddf12154aec94cace84b19c1] Signed-off-by: Mingli Yu --- include/su/code.h | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/include/su/code.h b/include/su/code.h index 9683f4a..c7a2af3 100644 --- a/include/su/code.h +++ b/include/su/code.h @@ -308,29 +308,8 @@ do{\ # ifdef DOXYGEN # define su_INLINE inline # define su_SINLINE inline -# elif su_CC_GCC -# if !su_CC_VCHECK_GCC(3, 1) -# define su_INLINE extern __inline__ -# define su_SINLINE static __inline__ -# elif !defined __GNUC_GNU_INLINE__ /*4.1.3; !su_CC_VCHECK_GCC(4, 2)*/ -# define su_INLINE extern __inline __attribute__((always_inline)) -# define su_SINLINE static __inline __attribute__((always_inline)) - /* gcc 8.3.0 bug: does not gracefully inline with -Os - * gcc 12.1.0 bug: ditto, -Og - * Thus: always gcc-specific! */ -# elif 1 /*!defined __OPTIMIZE__ || \ - !defined __STDC_VERSION__ || __STDC_VERSION__ +0 < 199901L*/ -# define su_INLINE extern __inline __attribute__((gnu_inline)) -# define su_SINLINE static __inline __attribute__((gnu_inline)) -# elif !defined NDEBUG || !defined __OPTIMIZE__ -# define su_INLINE static inline -# define su_SINLINE static inline -# else -# define su_INLINE inline -# define su_SINLINE static inline -# endif -# elif su_CC_CLANG || su_CC_PCC -# if defined __STDC_VERSION__ && __STDC_VERSION__ +0 >= 199901L +# elif su_CC_CLANG || su_CC_GCC || su_CC_PCC +# if defined __STDC_VERSION__ && __STDC_VERSION__ +0 >= 199901l # if !defined NDEBUG || !defined __OPTIMIZE__ # define su_INLINE static inline # define su_SINLINE static inline @@ -340,8 +319,13 @@ do{\ # define su_SINLINE static inline __attribute__((always_inline)) # endif # else -# define su_INLINE static __inline -# define su_SINLINE static __inline +# if su_CC_VCHECK_GCC(3, 1) +# define su_INLINE static __inline __attribute__((always_inline)) +# define su_SINLINE static __inline __attribute__((always_inline)) +# else +# define su_INLINE static __inline +# define su_SINLINE static __inline +# endif # endif # else # define su_INLINE static /* TODO __attribute__((unused)) alike? */ -- 2.25.1