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:08:55 +0000 (16:08 +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)

Conflicts:
e_os.h

e_os.h

diff --git a/e_os.h b/e_os.h
index cc90f5e8caacda0f0c5abbf4b094966ded385f79..532ec6bebf56670c40b0844d54db8f7ec4ddaddb 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -360,7 +360,16 @@ static unsigned int _strlen31(const char *str)
 #    define DEFAULT_HOME  "C:"
 #  endif
 
-#else /* The non-microsoft world world */
+/*
+ * 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 */
 
 #  ifdef OPENSSL_SYS_VMS
 #    define VMS 1
@@ -707,4 +716,3 @@ struct servent *getservbyname(const char *name, const char *proto);
 #endif
 
 #endif
-