Add COMPILER_SUPPORTS(CXX_AUTO_TYPE) and #error if it's 0
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Sep 2013 21:17:35 +0000 (21:17 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Sep 2013 21:17:35 +0000 (21:17 +0000)
https://bugs.webkit.org/show_bug.cgi?id=120794

Reviewed by Andreas Kling.

People have already begun using C++11 auto in WebCore, so let's make it a prerequisite.

* wtf/Compiler.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@155148 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/Compiler.h

index 1c6dbbd..b8f1ecf 100644 (file)
@@ -1,5 +1,16 @@
 2013-09-05  Anders Carlsson  <andersca@apple.com>
 
+        Add COMPILER_SUPPORTS(CXX_AUTO_TYPE) and #error if it's 0
+        https://bugs.webkit.org/show_bug.cgi?id=120794
+
+        Reviewed by Andreas Kling.
+
+        People have already begun using C++11 auto in WebCore, so let's make it a prerequisite.
+
+        * wtf/Compiler.h:
+
+2013-09-05  Anders Carlsson  <andersca@apple.com>
+
         Clean up wtf/Compiler.h
         https://bugs.webkit.org/show_bug.cgi?id=120790
 
index 1980ec8..ce4035d 100644 (file)
@@ -53,6 +53,7 @@
 #define WTF_COMPILER_SUPPORTS_CXX_OVERRIDE_CONTROL __has_feature(cxx_override_control)
 #define WTF_COMPILER_SUPPORTS_CXX_STRONG_ENUMS __has_feature(cxx_strong_enums)
 #define WTF_COMPILER_SUPPORTS_CXX_REFERENCE_QUALIFIED_FUNCTIONS __has_feature(cxx_reference_qualified_functions)
+#define WTF_COMPILER_SUPPORTS_CXX_AUTO_TYPE __has_feature(cxx_auto_type)
 
 /* Disable final on versions of Apple clang earlier than 4.2 to avoid bugs like http://webkit.org/b/119165 */
 #if defined(__APPLE__) && (__clang_major__ < 4 || (__clang_major__ == 4 && __clang_minor__ < 2))
@@ -83,6 +84,7 @@
 #if _MSC_VER >= 1600
 #define WTF_COMPILER_SUPPORTS_CXX_RVALUE_REFERENCES 1
 #define WTF_COMPILER_SUPPORTS_CXX_STATIC_ASSERT 1
+#define WTF_COMPILER_SUPPORTS_CXX_AUTO_TYPE 1
 #endif
 
 #endif /* defined(_MSC_VER) */
 #define WTF_COMPILER_SUPPORTS_CXX_RVALUE_REFERENCES 1
 #define WTF_COMPILER_SUPPORTS_CXX_STATIC_ASSERT 1
 #define WTF_COMPILER_SUPPORTS_CXX_VARIADIC_TEMPLATES 1
+#define WTF_COMPILER_SUPPORTS_CXX_AUTO_TYPE 1
 #endif
 #if GCC_VERSION_AT_LEAST(4, 4, 0)
 #define WTF_COMPILER_SUPPORTS_CXX_DELETED_FUNCTIONS 1
 #if !COMPILER_SUPPORTS(CXX_STATIC_ASSERT)
 #error "Please use a compiler that supports C++11 static_assert."
 #endif
+#if !COMPILER_SUPPORTS(CXX_AUTO_TYPE)
+#error "Please use a compiler that supports C++11 auto."
+#endif
 #endif
 
 /* ALWAYS_INLINE */