_LIBCPP_ALWAYS_INLINE is now being dropped on both clang and GCC (on the 
latter only if GCC is <= 4.7.2 ... which means that we will need to update it 
if newer versions dont support it).

  Im unsure if doing something similar for clang would be a good idea or not 
(though, I feel that if we are doing it for GCC, we should also do it for 
clang).

  Im unsure of the behaviour of other compilers (MSVC?), so I decided to not 
unconditionally drop the _LIBCPP_ALWAYS_INLINE as per rsmith's suggestion.  
However, if you feel strongly about it, I can always update the patch.

Hi Bigcheese,

http://llvm-reviews.chandlerc.com/D241

CHANGE SINCE LAST DIFF
  http://llvm-reviews.chandlerc.com/D241?vs=587&id=601#toc

Files:
  include/__config
  include/locale

Index: include/__config
===================================================================
--- include/__config
+++ include/__config
@@ -19,6 +19,14 @@
 #define _GNUC_VER (__GNUC__ * 100 + __GNUC_MINOR__)
 #endif
 
+#if defined(__GNUC__)
+#define __GNUC_VERSION(_major, _minor, _patch)                                 
 \
+    ((_major << 16) + (_minor << 8) + (_patch << 0))
+
+#define __GNUC_VERSION_CODE                                                    
 \
+    __GNUC_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)
+#endif
+
 #define _LIBCPP_VERSION 1101
 
 #define _LIBCPP_ABI_VERSION 1
Index: include/locale
===================================================================
--- include/locale
+++ include/locale
@@ -354,7 +354,10 @@
 #endif
 }
 
-_LIBCPP_ALWAYS_INLINE inline
+#if !defined(__GNUC__) || (__GNUC_VERSION_CODE > __GNUC_VERSION(4, 7, 2))
+_LIBCPP_ALWAYS_INLINE
+#endif
+inline
 int __sprintf_l(char *__s, locale_t __l, const char *__format, ...) {
   va_list __va;
   va_start(__va, __format);
@@ -368,7 +371,10 @@
   return __res;
 }
 
-_LIBCPP_ALWAYS_INLINE inline
+#if !defined(__GNUC__) || (__GNUC_VERSION_CODE > __GNUC_VERSION(4, 7, 2))
+_LIBCPP_ALWAYS_INLINE
+#endif
+inline
 int __snprintf_l(char *__s, size_t __n, locale_t __l, const char *__format, 
...) {
   va_list __va;
   va_start(__va, __format);
@@ -382,7 +388,10 @@
   return __res;
 }
 
-_LIBCPP_ALWAYS_INLINE inline
+#if !defined(__GNUC__) || (__GNUC_VERSION_CODE > __GNUC_VERSION(4, 7, 2))
+_LIBCPP_ALWAYS_INLINE
+#endif
+inline
 int __asprintf_l(char **__s, locale_t __l, const char *__format, ...) {
   va_list __va;
   va_start(__va, __format);
@@ -396,7 +405,10 @@
   return __res;
 }
 
-_LIBCPP_ALWAYS_INLINE inline
+#if !defined(__GNUC__) || (__GNUC_VERSION_CODE > __GNUC_VERSION(4, 7, 2))
+_LIBCPP_ALWAYS_INLINE
+#endif
+inline
 int __sscanf_l(const char *__s, locale_t __l, const char *__format, ...) {
   va_list __va;
   va_start(__va, __format);
Index: include/__config
===================================================================
--- include/__config
+++ include/__config
@@ -19,6 +19,14 @@
 #define _GNUC_VER (__GNUC__ * 100 + __GNUC_MINOR__)
 #endif
 
+#if defined(__GNUC__)
+#define __GNUC_VERSION(_major, _minor, _patch)                                  \
+    ((_major << 16) + (_minor << 8) + (_patch << 0))
+
+#define __GNUC_VERSION_CODE                                                     \
+    __GNUC_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)
+#endif
+
 #define _LIBCPP_VERSION 1101
 
 #define _LIBCPP_ABI_VERSION 1
Index: include/locale
===================================================================
--- include/locale
+++ include/locale
@@ -354,7 +354,10 @@
 #endif
 }
 
-_LIBCPP_ALWAYS_INLINE inline
+#if !defined(__GNUC__) || (__GNUC_VERSION_CODE > __GNUC_VERSION(4, 7, 2))
+_LIBCPP_ALWAYS_INLINE
+#endif
+inline
 int __sprintf_l(char *__s, locale_t __l, const char *__format, ...) {
   va_list __va;
   va_start(__va, __format);
@@ -368,7 +371,10 @@
   return __res;
 }
 
-_LIBCPP_ALWAYS_INLINE inline
+#if !defined(__GNUC__) || (__GNUC_VERSION_CODE > __GNUC_VERSION(4, 7, 2))
+_LIBCPP_ALWAYS_INLINE
+#endif
+inline
 int __snprintf_l(char *__s, size_t __n, locale_t __l, const char *__format, ...) {
   va_list __va;
   va_start(__va, __format);
@@ -382,7 +388,10 @@
   return __res;
 }
 
-_LIBCPP_ALWAYS_INLINE inline
+#if !defined(__GNUC__) || (__GNUC_VERSION_CODE > __GNUC_VERSION(4, 7, 2))
+_LIBCPP_ALWAYS_INLINE
+#endif
+inline
 int __asprintf_l(char **__s, locale_t __l, const char *__format, ...) {
   va_list __va;
   va_start(__va, __format);
@@ -396,7 +405,10 @@
   return __res;
 }
 
-_LIBCPP_ALWAYS_INLINE inline
+#if !defined(__GNUC__) || (__GNUC_VERSION_CODE > __GNUC_VERSION(4, 7, 2))
+_LIBCPP_ALWAYS_INLINE
+#endif
+inline
 int __sscanf_l(const char *__s, locale_t __l, const char *__format, ...) {
   va_list __va;
   va_start(__va, __format);
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to