diff options
Diffstat (limited to 'source/blender/blenlib/BLI_compiler_compat.h')
-rw-r--r-- | source/blender/blenlib/BLI_compiler_compat.h | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/source/blender/blenlib/BLI_compiler_compat.h b/source/blender/blenlib/BLI_compiler_compat.h index 974f920f4b3..80c564a70c7 100644 --- a/source/blender/blenlib/BLI_compiler_compat.h +++ b/source/blender/blenlib/BLI_compiler_compat.h @@ -15,7 +15,7 @@ */ #ifndef __BLI_COMPILER_COMPAT_H__ -#define __BLI_COMPILER_COMPAT_H__ +# define __BLI_COMPILER_COMPAT_H__ /** \file * \ingroup bli @@ -23,23 +23,26 @@ * Use to help with cross platform portability. */ -#if defined(_MSC_VER) -# define alloca _alloca -#endif +# if defined(_MSC_VER) +# define alloca _alloca +# endif -#if (defined(__GNUC__) || defined(__clang__)) && defined(__cplusplus) +# if (defined(__GNUC__) || defined(__clang__)) && defined(__cplusplus) extern "C++" { - /* Some magic to be sure we don't have reference in the type. */ - template<typename T> static inline T decltype_helper(T x) { return x; } -# define typeof(x) decltype(decltype_helper(x)) +/* Some magic to be sure we don't have reference in the type. */ +template<typename T> static inline T decltype_helper(T x) +{ + return x; } -#endif +# define typeof(x) decltype(decltype_helper(x)) +} +# endif /* little macro so inline keyword works */ -#if defined(_MSC_VER) -# define BLI_INLINE static __forceinline -#else -# define BLI_INLINE static inline __attribute__((always_inline)) __attribute__((__unused__)) -#endif +# if defined(_MSC_VER) +# define BLI_INLINE static __forceinline +# else +# define BLI_INLINE static inline __attribute__((always_inline)) __attribute__((__unused__)) +# endif -#endif /* __BLI_COMPILER_COMPAT_H__ */ +#endif /* __BLI_COMPILER_COMPAT_H__ */ |