diff options
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/ThirdParty/ANGLE/ANGLE.pri | 2 | ||||
| -rw-r--r-- | Source/WTF/wtf/Compiler.h | 6 | ||||
| -rw-r--r-- | Source/WebCore/bindings/scripts/CodeGeneratorJS.pm | 4 | ||||
| -rw-r--r-- | Source/WebCore/dom/Attribute.h | 4 |
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 |
