summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/ThirdParty/ANGLE/ANGLE.pri2
-rw-r--r--Source/WTF/wtf/Compiler.h6
-rw-r--r--Source/WebCore/bindings/scripts/CodeGeneratorJS.pm4
-rw-r--r--Source/WebCore/dom/Attribute.h4
4 files changed, 10 insertions, 6 deletions
diff --git a/Source/ThirdParty/ANGLE/ANGLE.pri b/Source/ThirdParty/ANGLE/ANGLE.pri
index fcb4a44da..e069b141f 100644
--- a/Source/ThirdParty/ANGLE/ANGLE.pri
+++ b/Source/ThirdParty/ANGLE/ANGLE.pri
@@ -7,8 +7,6 @@
SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/ThirdParty/ANGLE
-*clang: QT_CONFIG -= c++11
-
INCLUDEPATH += \
$$SOURCE_DIR/include/GLSLANG \
$$SOURCE_DIR/include/KHR
diff --git a/Source/WTF/wtf/Compiler.h b/Source/WTF/wtf/Compiler.h
index 7a2e25f49..644bbf2db 100644
--- a/Source/WTF/wtf/Compiler.h
+++ b/Source/WTF/wtf/Compiler.h
@@ -61,6 +61,12 @@
#define WTF_COMPILER_SUPPORTS_HAS_TRIVIAL_DESTRUCTOR __has_feature(has_trivial_destructor)
#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)
+
+#if defined(__APPLE__) && COMPILER_SUPPORTS(CXX_RVALUE_REFERENCES) && defined(_GLIBCXX_VERSION) && (_GLIBCXX_VERSION <= 20070719)
+/* WTF expects the standard library to have std::move when the compiler supports rvalue references, but some old versions of stdc++11 shipped by Apple does not. */
+#define WTF_COMPILER_SUPPORTS_CXX_RVALUE_REFERENCES 0
+#endif
+
#endif
#ifndef CLANG_PRAGMA
diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
index 9e9d59dcc..df4234e23 100644
--- a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
+++ b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
@@ -2807,7 +2807,7 @@ END
void* expectedVTablePointer = reinterpret_cast<void*>(${vtableRefWin});
#else
void* expectedVTablePointer = ${vtableRefGnu};
-#if COMPILER(CLANG)
+#if COMPILER(CLANG) && COMPILER_SUPPORTS(CXX_STATIC_ASSERT)
// If this fails $implType does not have a vtable, so you need to add the
// ImplementationLacksVTable attribute to the interface definition
COMPILE_ASSERT(__is_polymorphic($implType), ${implType}_is_not_polymorphic);
@@ -2821,7 +2821,7 @@ END
#endif
END
push(@implContent, <<END) if $interface->extendedAttributes->{"ImplementationLacksVTable"};
-#if COMPILER(CLANG)
+#if COMPILER(CLANG) && COMPILER_SUPPORTS(CXX_STATIC_ASSERT)
// If you hit this failure the interface definition has the ImplementationLacksVTable
// attribute. You should remove that attribute. If the class has subclasses
// that may be passed through this toJS() function you should use the SkipVTableValidation
diff --git a/Source/WebCore/dom/Attribute.h b/Source/WebCore/dom/Attribute.h
index 61c9ec5a8..c590f9a03 100644
--- a/Source/WebCore/dom/Attribute.h
+++ b/Source/WebCore/dom/Attribute.h
@@ -61,8 +61,8 @@ public:
// elements may have placed the Attribute in a hash by name.
void parserSetName(const QualifiedName& name) { m_name = name; }
-#if COMPILER(MSVC)
- // NOTE: This constructor is not actually implemented, it's just defined so MSVC
+#if COMPILER(MSVC) || COMPILER(CLANG)
+ // NOTE: This constructor is not actually implemented, it's just defined so MSVC (or clang)
// will let us use a zero-length array of Attributes.
Attribute();
#endif