[SDK] Fix __forceinline definition for C++
authorVictor Perevertkin <victor.perevertkin@reactos.org>
Thu, 24 Sep 2020 02:33:35 +0000 (05:33 +0300)
committerVictor Perevertkin <victor.perevertkin@reactos.org>
Thu, 24 Sep 2020 02:33:35 +0000 (05:33 +0300)
sdk/include/crt/_mingw.h
sdk/include/psdk/intsafe.h
sdk/include/xdk/ntbasedef.h

index b63e0b3..06a304d 100644 (file)
@@ -190,10 +190,14 @@ allow GCC to optimize away some EH unwind code, at least in DW2 case.  */
 # endif
 # define __ptr32
 # define __ptr64
-# if ( __MINGW_GNUC_PREREQ(4, 3)  &&  __STDC_VERSION__ >= 199901L)
-#  define __forceinline extern inline __attribute__((__always_inline__,__gnu_inline__))
+# ifdef __cplusplus
+#  define __forceinline inline __attribute__((__always_inline__))
 # else
-#  define __forceinline extern __inline__ __attribute__((__always_inline__))
+#  if ( __MINGW_GNUC_PREREQ(4, 3)  &&  __STDC_VERSION__ >= 199901L)
+#   define __forceinline extern inline __attribute__((__always_inline__,__gnu_inline__))
+#  else
+#   define __forceinline extern __inline__ __attribute__((__always_inline__))
+#  endif
 # endif
 #endif
 
index e30cb11..10fb173 100644 (file)
 
 #include <specstrings.h>
 
-#if defined(__GNUC__) && !defined(__forceinline)
-# if ( __MINGW_GNUC_PREREQ(4, 3)  &&  __STDC_VERSION__ >= 199901L)
-#  define __forceinline extern inline __attribute__((__always_inline__,__gnu_inline__))
-# else
-#  define __forceinline extern __inline__ __attribute__((__always_inline__))
-# endif
-#endif
-
 /* Handle ntintsafe here too */
 #ifdef _NTINTSAFE_H_INCLUDED_
 #ifndef _NTDEF_ /* Guard agains redefinition from ntstatus.h */
index a7d0935..2118935 100644 (file)
 
 /* Inlines */
 #ifndef FORCEINLINE
- #if defined(_MSC_VER)
-  #define FORCEINLINE __forceinline
- #elif ( __MINGW_GNUC_PREREQ(4, 3)  &&  __STDC_VERSION__ >= 199901L)
-  #define FORCEINLINE extern inline __attribute__((__always_inline__,__gnu_inline__))
- #else
-  #define FORCEINLINE extern __inline__ __attribute__((__always_inline__))
- #endif
+ #define FORCEINLINE __forceinline
 #endif /* FORCEINLINE */
 
 #ifndef DECLSPEC_NOINLINE