From 5429b9e343c808951b1418d8626e544c9dcb28de Mon Sep 17 00:00:00 2001 From: Steffen Nurpmeso Date: Thu, 9 Jun 2022 18:06:04 +0800 Subject: [PATCH] su_INLINE: gcc: only GNU specifics after -Og Upstream-Status: Backport [https://git.sdaoden.eu/browse/s-nail.git/commit/?id=c5544b66c3b4b2e161166562349908a07e324b38] Signed-off-by: Mingli Yu --- include/su/code.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/include/su/code.h b/include/su/code.h index 4d552c1..9683f4a 100644 --- a/include/su/code.h +++ b/include/su/code.h @@ -309,16 +309,17 @@ do{\ # define su_INLINE inline # define su_SINLINE inline # elif su_CC_GCC - /* After lots of trouble with OpenBSD/gcc 4.2.1 and SunOS/gcc 3.4.3 */ -# if !su_CC_VCHECK_GCC(3, 2) /* Unsure: only used C++ at that time */ -# define su_INLINE extern __inline -# define su_SINLINE static __inline -# elif !su_CC_VCHECK_GCC(4, 3) +# 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)) - /* xxx gcc 8.3.0 bug: does not truly inline with -Os */ -# elif !su_CC_VCHECK_GCC(8, 3) || !defined __OPTIMIZE__ ||\ - !defined __STDC_VERSION__ || __STDC_VERSION__ +0 < 199901L + /* 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__ -- 2.25.1