46 lines
1.9 KiB
Diff
46 lines
1.9 KiB
Diff
From 5429b9e343c808951b1418d8626e544c9dcb28de Mon Sep 17 00:00:00 2001
|
|
From: Steffen Nurpmeso <steffen@sdaoden.eu>
|
|
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 <mingli.yu@windriver.com>
|
|
---
|
|
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
|
|
|