define inline for Visual Studio
authorEmilia Kasper <emilia@openssl.org>
Tue, 19 Aug 2014 11:18:07 +0000 (13:18 +0200)
committerEmilia Kasper <emilia@openssl.org>
Thu, 21 Aug 2014 14:07:44 +0000 (16:07 +0200)
In Visual Studio, inline is available in C++ only, however __inline is available for C, see
http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Dr Stephen Henson <steve@openssl.org>
(cherry picked from commit f511b25a7370c775dc9fd6198dbacd1706cf242b)

e_os.h

diff --git a/e_os.h b/e_os.h
index 2076f7519678e0afc56a01eabd551b1af7d966c8..bfd7e36a1995355c00a0fa0bcf377a2c90e05e48 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -376,7 +376,16 @@ static unsigned int _strlen31(const char *str)
 #  define check_winnt() (1)
 #else
 #  define check_winnt() (GetVersion() < 0x80000000)
-#endif 
+#endif
+
+/*
+ * Visual Studio: inline is available in C++ only, however
+ * __inline is available for C, see
+ * http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx
+ */
+#if defined(_MSC_VER) && !defined(__cplusplus) && !defined(inline)
+#  define inline __inline
+#endif
 
 #else /* The non-microsoft world */
 
@@ -741,4 +750,3 @@ struct servent *getservbyname(const char *name, const char *proto);
 #endif
 
 #endif
-