Bug 195947

Summary: REGRESSION(r243115) breaks build for clang 3.8
Product: WebKit Reporter: Tuti <zrqrrahe>
Component: WebKit Misc.Assignee: Michael Catanzaro <mcatanzaro>
Status: RESOLVED FIXED    
Severity: Normal CC: aestes, benjamin, cdumez, cmarcelo, commit-queue, darin, dbates, ews-watchlist, keith_miller, mark.lam, mcatanzaro, msaboff, saam, webkit-bug-importer, xan.lopez
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=195798
https://bugs.webkit.org/show_bug.cgi?id=195920
Attachments:
Description Flags
The failed build log
none
Patch
none
Patch none

Tuti
Reported 2019-03-19 08:53:32 PDT
Created attachment 365165 [details] The failed build log The failed build log is attached. It is run with env variables CC=/usr/bin/clang CXX=/usr/bin/clang++ clang versions: /usr/bin/clang --version clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final) Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/bin /usr/bin/clang++ --version clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final) Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/bin
Attachments
The failed build log (5.55 KB, text/plain)
2019-03-19 08:53 PDT, Tuti
no flags
Patch (1.43 KB, patch)
2019-03-19 13:13 PDT, Michael Catanzaro
no flags
Patch (9.71 KB, patch)
2019-04-01 08:32 PDT, Michael Catanzaro
no flags
Alexey Proskuryakov
Comment 1 2019-03-19 09:23:35 PDT
/usr/bin/clang++ -DBUILDING_JSCONLY__ -DBUILDING_WITH_CMAKE=1 -DBUILDING_WTF -DHAVE_CONFIG_H=1 -I../../Source/bmalloc -I. -IDerivedSources -I../../Source/ThirdParty -I../../Source/WTF -I../../Source/WTF/wtf -I../../Source/WTF/wtf/dtoa -I../../Source/WTF/wtf/persistence -I../../Source/WTF/wtf/text -I../../Source/WTF/wtf/text/icu -I../../Source/WTF/wtf/threads -I../../Source/WTF/wtf/unicode -fno-optimize-sibling-calls -fno-omit-frame-pointer -fdiagnostics-color=always -fcolor-diagnostics -Wextra -Wall -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -fno-strict-aliasing -fno-exceptions -fno-rtti -std=c++14 -fsanitize=address -gsplit-dwarf -g -fPIC -MMD -MT Source/WTF/wtf/CMakeFiles/WTF.dir/DateMath.cpp.o -MF Source/WTF/wtf/CMakeFiles/WTF.dir/DateMath.cpp.o.d -o Source/WTF/wtf/CMakeFiles/WTF.dir/DateMath.cpp.o -c ../../Source/WTF/wtf/DateMath.cpp In file included from ../../Source/WTF/wtf/DateMath.cpp:73: In file included from ../../Source/WTF/wtf/DateMath.h:50: In file included from ../../Source/WTF/wtf/text/WTFString.h:713: In file included from ../../Source/WTF/wtf/text/AtomicString.h:377: ../../Source/WTF/wtf/text/StringConcatenate.h:281:16: error: no viable conversion from returned value of type 'RefPtr<WTF::StringImpl>' to function return type 'WTF::String' return resultImpl; ^~~~~~~~~~
Xan Lopez
Comment 2 2019-03-19 09:55:44 PDT
I am guessing the std::move in WTFMove was redundant, but some of the other extra stuff made the ctors in WTFString.h work in clang 3.8, and now we fail? Somehow it seemingly works in other compilers though.
Xan Lopez
Comment 3 2019-03-19 10:13:26 PDT
(In reply to Xan Lopez from comment #2) > I am guessing the std::move in WTFMove was redundant, but some of the other > extra stuff made the ctors in WTFString.h work in clang 3.8, and now we > fail? Somehow it seemingly works in other compilers though. One guess is the std::forward call happening in move specialization in StdLibExtras.h, which could be forwarding the lvalue to match the WTFString ctor which takes a RefPtr<StringImpl>&&.
Xan Lopez
Comment 4 2019-03-19 10:48:24 PDT
(In reply to Xan Lopez from comment #3) > (In reply to Xan Lopez from comment #2) > > I am guessing the std::move in WTFMove was redundant, but some of the other > > extra stuff made the ctors in WTFString.h work in clang 3.8, and now we > > fail? Somehow it seemingly works in other compilers though. > > One guess is the std::forward call happening in move specialization in > StdLibExtras.h, which could be forwarding the lvalue to match the WTFString > ctor which takes a RefPtr<StringImpl>&&. Adding std::forward<RefPtr<StringImpl>> fixes the build with clang 3.8, I asked someone with access to that to test it for me. My question now would be why it's not needed in newer clang versions, and whether that's safe to do regardless.
Michael Catanzaro
Comment 5 2019-03-19 10:49:15 PDT
I was going to suggest: return resultImpl.copyRef(); which is less mysterious.
Michael Catanzaro
Comment 6 2019-03-19 10:51:54 PDT
Note clang 3.8 is *really* old, July 2016. How far back does Apple support old clang versions?
Xan Lopez
Comment 7 2019-03-19 10:57:58 PDT
(In reply to Michael Catanzaro from comment #5) > I was going to suggest: > > return resultImpl.copyRef(); > > which is less mysterious. My colleague tells me the build was already broken with clang 3.8 FWIW. Not that we should not fix this, but it seems there were already other issues. Should not at least one bot run the minimum required clang version?
Michael Catanzaro
Comment 8 2019-03-19 13:01:48 PDT
Or maybe: return String { resultImpl }; I'll try to reland this in bug #195920, to keep everything together.
Michael Catanzaro
Comment 9 2019-03-19 13:03:45 PDT
(In reply to Michael Catanzaro from comment #8) > I'll try to reland this in bug #195920, to keep everything together. Oh sorry, I thought you had done a rollout. Nevermind that.
Michael Catanzaro
Comment 10 2019-03-19 13:05:43 PDT
(In reply to Michael Catanzaro from comment #8) > Or maybe: > > return String { resultImpl }; Would have to be: return String { WTFMove(resultImpl) };
Michael Catanzaro
Comment 11 2019-03-19 13:13:09 PDT
Michael Catanzaro
Comment 12 2019-03-19 13:14:17 PDT
Tuti, does that work? (In reply to Michael Catanzaro from comment #6) > Note clang 3.8 is *really* old, July 2016. How far back does Apple support > old clang versions? Really interested in the answer to this.
Tuti
Comment 13 2019-03-20 00:57:22 PDT
Unfortunately not: + cmake --build /fuzzing/WebKit/WebKitBuild/Debug --config Debug -- [1023/1457] Building CXX object Source/WTF/wtf/CMakeFiles/WTF.dir/MetaAllocator.cpp.o FAILED: Source/WTF/wtf/CMakeFiles/WTF.dir/MetaAllocator.cpp.o /usr/bin/clang++ -DBUILDING_JSCONLY__ -DBUILDING_WITH_CMAKE=1 -DBUILDING_WTF -DHAVE_CONFIG_H=1 -I../../Source/bmalloc -I. -IDerivedSources -I../../Source/ThirdParty -I../../Source/WTF -I../../Source/WTF/wtf -I../../Source/WTF/wtf/dtoa -I../../Source/WTF/wtf/persistence -I../../Source/WTF/wtf/text -I../../Source/WTF/wtf/text/icu -I../../Source/WTF/wtf/threads -I../../Source/WTF/wtf/unicode -fdiagnostics-color=always -fcolor-diagnostics -Wextra -Wall -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -fno-strict-aliasing -fno-exceptions -fno-rtti -std=c++14 -gsplit-dwarf -g -fPIC -MMD -MT Source/WTF/wtf/CMakeFiles/WTF.dir/MetaAllocator.cpp.o -MF Source/WTF/wtf/CMakeFiles/WTF.dir/MetaAllocator.cpp.o.d -o Source/WTF/wtf/CMakeFiles/WTF.dir/MetaAllocator.cpp.o -c ../../Source/WTF/wtf/MetaAllocator.cpp ../../Source/WTF/wtf/MetaAllocator.cpp:197:12: error: no viable conversion from returned value of type 'WTF::Ref<WTF::MetaAllocatorHandle, WTF::DumbPtrTraits<WTF::MetaAllocatorHandle> >' to function return type 'RefPtr<WTF::MetaAllocatorHandle>' return handle; ^~~~~~ ../../Source/WTF/wtf/RefPtr.h:57:19: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WTF::MetaAllocatorHandle, WTF::DumbPtrTraits<WTF::MetaAllocatorHandle> >' to 'WTF::MetaAllocatorHandle *' for 1st argument ALWAYS_INLINE RefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); } ^ ../../Source/WTF/wtf/RefPtr.h:58:19: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WTF::MetaAllocatorHandle, WTF::DumbPtrTraits<WTF::MetaAllocatorHandle> >' to 'const WTF::RefPtr<WTF::MetaAllocatorHandle, WTF::DumbPtrTraits<WTF::MetaAllocatorHandle> > &' for 1st argument ALWAYS_INLINE RefPtr(const RefPtr& o) : m_ptr(o.m_ptr) { refIfNotNull(PtrTraits::unwrap(m_ptr)); } ^ ../../Source/WTF/wtf/RefPtr.h:61:19: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WTF::MetaAllocatorHandle, WTF::DumbPtrTraits<WTF::MetaAllocatorHandle> >' to 'WTF::RefPtr<WTF::MetaAllocatorHandle, WTF::DumbPtrTraits<WTF::MetaAllocatorHandle> > &&' for 1st argument ALWAYS_INLINE RefPtr(RefPtr&& o) : m_ptr(o.leakRef()) { } ^ ../../Source/WTF/wtf/RefPtr.h:63:38: note: candidate constructor [with X = WTF::MetaAllocatorHandle, Y = WTF::DumbPtrTraits<WTF::MetaAllocatorHandle>] not viable: no known conversion from 'WTF::Ref<WTF::MetaAllocatorHandle, WTF::DumbPtrTraits<WTF::MetaAllocatorHandle> >' to 'Ref<WTF::MetaAllocatorHandle, WTF::DumbPtrTraits<WTF::MetaAllocatorHandle> > &&' for 1st argument template<typename X, typename Y> RefPtr(Ref<X, Y>&&); ^ ../../Source/WTF/wtf/RefPtr.h:66:5: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WTF::MetaAllocatorHandle, WTF::DumbPtrTraits<WTF::MetaAllocatorHandle> >' to 'WTF::HashTableDeletedValueType' for 1st argument RefPtr(HashTableDeletedValueType) : m_ptr(hashTableDeletedValue()) { } ^ ../../Source/WTF/wtf/RefPtr.h:59:38: note: candidate template ignored: could not match 'RefPtr' against 'Ref' template<typename X, typename Y> RefPtr(const RefPtr<X, Y>& o) : m_ptr(o.get()) { refIfNotNull(PtrTraits::unwrap(m_ptr)); } ^ ../../Source/WTF/wtf/RefPtr.h:62:38: note: candidate template ignored: could not match 'RefPtr' against 'Ref' template<typename X, typename Y> RefPtr(RefPtr<X, Y>&& o) : m_ptr(o.leakRef()) { } ^ ../../Source/WTF/wtf/Ref.h:122:5: note: candidate function operator T&() const { ASSERT(m_ptr); return *PtrTraits::unwrap(m_ptr); } ^ 1 error generated. [1040/1457] Building CXX object Source/WTF/wtf/CMakeFiles/WTF.dir/ParkingLot.cpp.o ninja: build stopped: subcommand failed.
Tuti
Comment 14 2019-03-20 01:14:30 PDT
Excuse me, the patch does work. It is this newer commit that breaks the build again: https://bugs.webkit.org/show_bug.cgi?id=195920
Xan Lopez
Comment 15 2019-03-20 02:20:58 PDT
(In reply to Tuti from comment #14) > Excuse me, the patch does work. > > It is this newer commit that breaks the build again: > https://bugs.webkit.org/show_bug.cgi?id=195920 And like I said, apparently the build was already broken before any of this. If clang 3.8 is supposed to build WebKit we need a buildbot that uses it, otherwise this is an impossible task.
Tuti
Comment 16 2019-03-20 02:35:50 PDT
I have been building with clang 3.8 for the past 6 months with no issues till now. The two commits that broke the build happened in the past couple of days. I certainly agree a build bot is a fantastic idea.
Darin Adler
Comment 17 2019-03-20 07:20:23 PDT
Whatever we do to solve this, please don’t add copyRef; that’s literally the opposite of what we are trying accomplish, adding reference count churn that we try to avoid by moving instead of copying smart pointers.
Darin Adler
Comment 18 2019-03-20 07:21:58 PDT
Seems clear that if we are trying to fix a warning in one compiler in a way that creates an error in another that we should back this out. Apple's current use of TOT WebKit requires support from older clang versions about 2-3 years back. You can get a more precise answer from someone else.
Michael Catanzaro
Comment 19 2019-03-20 10:32:57 PDT
(In reply to Darin Adler from comment #18) > Seems clear that if we are trying to fix a warning in one compiler in a way > that creates an error in another that we should back this out. Depends, is clang 3.8 support required? If so, then yes of course, but it doesn't seem so. Apple internal builds are presumably happy, or we'd have done a rollout by now, right? So I suspect you are not using clang 3.8 anywhere. Fixing builds with old compilers is really time-consuming and annoying, so we have a policy that it's OK to break GCC 5 or older, but GCC 6 must still work (for now). That way we know exactly what is required to work. We don't have any guidelines for old versions of clang, though, so breaking clang 3.8 is fine for us. Anyway, we have several alternatives: * Use IGNORE_WARNINGS in these spots, but this would be needed in dozens of places (or hundreds of places if we revert my patch) * Build with -Wno-redundant-move, but this prevents us from detecting these issues and improving the WebKit codebase * Make it work for clang 3.8 using the idiom return Foo { WTFMove(foo) }; as demonstrated in this patch I'll try Foo { WTFMove(foo) }; for now. This is only needed when the return value undergoes a type conversion, e.g. here we are trying to convert from Ref<> to RefPtr<>, that's why clang 3.8 complains. So only a small minority of removed WTFMoves() are likely to break clang 3.8 and we can probably tackle them as Tuti reports them. I'll update this patch for MetaAllocator.cpp now, and Tuti can report back if it's sufficient. Note: one of Igalia's developers tested a clang 3.8 build yesterday and reported that it was already broken before Xan's patch (so before mine as well) so I guess whether it works must be dependent on build options.
Chris Dumez
Comment 20 2019-03-20 10:36:27 PDT
Comment on attachment 365217 [details] Patch Seems fine.
Michael Catanzaro
Comment 21 2019-03-20 11:02:56 PDT
Michael Catanzaro
Comment 22 2019-03-20 11:03:43 PDT
Radar WebKit Bug Importer
Comment 23 2019-03-20 11:03:45 PDT
Tuti
Comment 24 2019-03-21 04:10:11 PDT
(In reply to Michael Catanzaro from comment #19) > I'll try Foo { WTFMove(foo) }; for now. This is only needed when the return > value undergoes a type conversion, e.g. here we are trying to convert from > Ref<> to RefPtr<>, that's why clang 3.8 complains. So only a small minority > of removed WTFMoves() are likely to break clang 3.8 and we can probably > tackle them as Tuti reports them. I'll update this patch for > MetaAllocator.cpp now, and Tuti can report back if it's sufficient. Thanks a lot for the work! The build now crashes as so: [1307/1458] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScri...ivedSources/JavaScriptCore/unified-sources/UnifiedSource-da3fe922-1.cpp.o FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-da3fe922-1.cpp.o /usr/bin/clang++ -DBUILDING_JSCONLY__ -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DHAVE_CONFIG_H=1 -DJavaScriptCore_EXPORTS -DSTATICALLY_LINKED_WITH_WTF -IDerivedSources/ForwardingHeaders -I. -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/b3 -I../../Source/JavaScriptCore/b3/air -I../../Source/JavaScriptCore/bindings -I../../Source/JavaScriptCore/builtins -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/disassembler/ARM64 -I../../Source/JavaScriptCore/disassembler/udis86 -I../../Source/JavaScriptCore/domjit -I../../Source/JavaScriptCore/ftl -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/debugger -I../../Source/JavaScriptCore/inspector -I../../Source/JavaScriptCore/inspector/agents -I../../Source/JavaScriptCore/inspector/augmentable -I../../Source/JavaScriptCore/inspector/remote -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/llint -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/runtime -I../../Source/JavaScriptCore/tools -I../../Source/JavaScriptCore/wasm -I../../Source/JavaScriptCore/wasm/js -I../../Source/JavaScriptCore/yarr -IDerivedSources/JavaScriptCore -IDerivedSources/JavaScriptCore/inspector -IDerivedSources/JavaScriptCore/runtime -IDerivedSources/JavaScriptCore/yarr -I../../Source/bmalloc -IDerivedSources -I../../Source/ThirdParty -fdiagnostics-color=always -fcolor-diagnostics -Wextra -Wall -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -fno-strict-aliasing -fno-exceptions -fno-rtti -std=c++14 -gsplit-dwarf -g -fPIC -ffp-contract=off -MMD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-da3fe922-1.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-da3fe922-1.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-da3fe922-1.cpp.o -c DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-da3fe922-1.cpp In file included from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-da3fe922-1.cpp:3: ../../Source/JavaScriptCore/bindings/ScriptValue.cpp:77:20: error: no viable conversion from returned value of type 'WTF::Ref<WTF::JSONImpl::Array, WTF::DumbPtrTraits<WTF::JSONImpl::Array> >' to function return type 'RefPtr<JSON::Value>' return inspectorArray; ^~~~~~~~~~~~~~ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:57:19: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WTF::JSONImpl::Array, WTF::DumbPtrTraits<WTF::JSONImpl::Array> >' to 'WTF::JSONImpl::Value *' for 1st argument ALWAYS_INLINE RefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:58:19: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WTF::JSONImpl::Array, WTF::DumbPtrTraits<WTF::JSONImpl::Array> >' to 'const WTF::RefPtr<WTF::JSONImpl::Value, WTF::DumbPtrTraits<WTF::JSONImpl::Value> > &' for 1st argument ALWAYS_INLINE RefPtr(const RefPtr& o) : m_ptr(o.m_ptr) { refIfNotNull(PtrTraits::unwrap(m_ptr)); } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:61:19: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WTF::JSONImpl::Array, WTF::DumbPtrTraits<WTF::JSONImpl::Array> >' to 'WTF::RefPtr<WTF::JSONImpl::Value, WTF::DumbPtrTraits<WTF::JSONImpl::Value> > &&' for 1st argument ALWAYS_INLINE RefPtr(RefPtr&& o) : m_ptr(o.leakRef()) { } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:63:38: note: candidate constructor [with X = WTF::JSONImpl::Array, Y = WTF::DumbPtrTraits<WTF::JSONImpl::Array>] not viable: no known conversion from 'WTF::Ref<WTF::JSONImpl::Array, WTF::DumbPtrTraits<WTF::JSONImpl::Array> >' to 'Ref<WTF::JSONImpl::Array, WTF::DumbPtrTraits<WTF::JSONImpl::Array> > &&' for 1st argument template<typename X, typename Y> RefPtr(Ref<X, Y>&&); ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:66:5: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WTF::JSONImpl::Array, WTF::DumbPtrTraits<WTF::JSONImpl::Array> >' to 'WTF::HashTableDeletedValueType' for 1st argument RefPtr(HashTableDeletedValueType) : m_ptr(hashTableDeletedValue()) { } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:59:38: note: candidate template ignored: could not match 'RefPtr' against 'Ref' template<typename X, typename Y> RefPtr(const RefPtr<X, Y>& o) : m_ptr(o.get()) { refIfNotNull(PtrTraits::unwrap(m_ptr)); } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:62:38: note: candidate template ignored: could not match 'RefPtr' against 'Ref' template<typename X, typename Y> RefPtr(RefPtr<X, Y>&& o) : m_ptr(o.leakRef()) { } ^ DerivedSources/ForwardingHeaders/wtf/Ref.h:122:5: note: candidate function operator T&() const { ASSERT(m_ptr); return *PtrTraits::unwrap(m_ptr); } ^ In file included from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-da3fe922-1.cpp:3: ../../Source/JavaScriptCore/bindings/ScriptValue.cpp:90:16: error: no viable conversion from returned value of type 'WTF::Ref<WTF::JSONImpl::Object, WTF::DumbPtrTraits<WTF::JSONImpl::Object> >' to function return type 'RefPtr<JSON::Value>' return inspectorObject; ^~~~~~~~~~~~~~~ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:57:19: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WTF::JSONImpl::Object, WTF::DumbPtrTraits<WTF::JSONImpl::Object> >' to 'WTF::JSONImpl::Value *' for 1st argument ALWAYS_INLINE RefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:58:19: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WTF::JSONImpl::Object, WTF::DumbPtrTraits<WTF::JSONImpl::Object> >' to 'const WTF::RefPtr<WTF::JSONImpl::Value, WTF::DumbPtrTraits<WTF::JSONImpl::Value> > &' for 1st argument ALWAYS_INLINE RefPtr(const RefPtr& o) : m_ptr(o.m_ptr) { refIfNotNull(PtrTraits::unwrap(m_ptr)); } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:61:19: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WTF::JSONImpl::Object, WTF::DumbPtrTraits<WTF::JSONImpl::Object> >' to 'WTF::RefPtr<WTF::JSONImpl::Value, WTF::DumbPtrTraits<WTF::JSONImpl::Value> > &&' for 1st argument ALWAYS_INLINE RefPtr(RefPtr&& o) : m_ptr(o.leakRef()) { } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:63:38: note: candidate constructor [with X = WTF::JSONImpl::Object, Y = WTF::DumbPtrTraits<WTF::JSONImpl::Object>] not viable: no known conversion from 'WTF::Ref<WTF::JSONImpl::Object, WTF::DumbPtrTraits<WTF::JSONImpl::Object> >' to 'Ref<WTF::JSONImpl::Object, WTF::DumbPtrTraits<WTF::JSONImpl::Object> > &&' for 1st argument template<typename X, typename Y> RefPtr(Ref<X, Y>&&); ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:66:5: note: candidate constructor not viable: no known conversion from 'WTF::Ref<WTF::JSONImpl::Object, WTF::DumbPtrTraits<WTF::JSONImpl::Object> >' to 'WTF::HashTableDeletedValueType' for 1st argument RefPtr(HashTableDeletedValueType) : m_ptr(hashTableDeletedValue()) { } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:59:38: note: candidate template ignored: could not match 'RefPtr' against 'Ref' template<typename X, typename Y> RefPtr(const RefPtr<X, Y>& o) : m_ptr(o.get()) { refIfNotNull(PtrTraits::unwrap(m_ptr)); } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:62:38: note: candidate template ignored: could not match 'RefPtr' against 'Ref' template<typename X, typename Y> RefPtr(RefPtr<X, Y>&& o) : m_ptr(o.leakRef()) { } ^ DerivedSources/ForwardingHeaders/wtf/Ref.h:122:5: note: candidate function operator T&() const { ASSERT(m_ptr); return *PtrTraits::unwrap(m_ptr); } ^ 2 errors generated. [1312/1458] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScri...ivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-6.cpp.o FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-6.cpp.o /usr/bin/clang++ -DBUILDING_JSCONLY__ -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DHAVE_CONFIG_H=1 -DJavaScriptCore_EXPORTS -DSTATICALLY_LINKED_WITH_WTF -IDerivedSources/ForwardingHeaders -I. -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/b3 -I../../Source/JavaScriptCore/b3/air -I../../Source/JavaScriptCore/bindings -I../../Source/JavaScriptCore/builtins -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/disassembler/ARM64 -I../../Source/JavaScriptCore/disassembler/udis86 -I../../Source/JavaScriptCore/domjit -I../../Source/JavaScriptCore/ftl -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/debugger -I../../Source/JavaScriptCore/inspector -I../../Source/JavaScriptCore/inspector/agents -I../../Source/JavaScriptCore/inspector/augmentable -I../../Source/JavaScriptCore/inspector/remote -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/llint -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/runtime -I../../Source/JavaScriptCore/tools -I../../Source/JavaScriptCore/wasm -I../../Source/JavaScriptCore/wasm/js -I../../Source/JavaScriptCore/yarr -IDerivedSources/JavaScriptCore -IDerivedSources/JavaScriptCore/inspector -IDerivedSources/JavaScriptCore/runtime -IDerivedSources/JavaScriptCore/yarr -I../../Source/bmalloc -IDerivedSources -I../../Source/ThirdParty -fdiagnostics-color=always -fcolor-diagnostics -Wextra -Wall -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -fno-strict-aliasing -fno-exceptions -fno-rtti -std=c++14 -gsplit-dwarf -g -fPIC -ffp-contract=off -MMD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-6.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-6.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-6.cpp.o -c DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-6.cpp In file included from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-6.cpp:8: ../../Source/JavaScriptCore/bytecode/InstanceOfAccessCase.cpp:50:12: error: no viable conversion from returned value of type 'unique_ptr<JSC::InstanceOfAccessCase>' to function return type 'unique_ptr<JSC::AccessCase>' return result; ^~~~~~ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:200:17: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<InstanceOfAccessCase>' to 'nullptr_t' for 1st argument constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { } ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:205:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<InstanceOfAccessCase>' to 'std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &&' for 1st argument unique_ptr(unique_ptr&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:220:2: note: candidate constructor [with _Up = JSC::InstanceOfAccessCase, _Ep = std::default_delete<JSC::InstanceOfAccessCase>, $2 = void] not viable: no known conversion from 'std::unique_ptr<InstanceOfAccessCase>' to 'unique_ptr<JSC::InstanceOfAccessCase, std::default_delete<JSC::InstanceOfAccessCase> > &&' for 1st argument unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:356:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<InstanceOfAccessCase>' to 'const std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &' for 1st argument unique_ptr(const unique_ptr&) = delete; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:228:2: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' unique_ptr(auto_ptr<_Up>&& __u) noexcept; ^ 1 error generated. [1314/1458] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScri...ivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-5.cpp.o FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-5.cpp.o /usr/bin/clang++ -DBUILDING_JSCONLY__ -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DHAVE_CONFIG_H=1 -DJavaScriptCore_EXPORTS -DSTATICALLY_LINKED_WITH_WTF -IDerivedSources/ForwardingHeaders -I. -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/b3 -I../../Source/JavaScriptCore/b3/air -I../../Source/JavaScriptCore/bindings -I../../Source/JavaScriptCore/builtins -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/disassembler/ARM64 -I../../Source/JavaScriptCore/disassembler/udis86 -I../../Source/JavaScriptCore/domjit -I../../Source/JavaScriptCore/ftl -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/debugger -I../../Source/JavaScriptCore/inspector -I../../Source/JavaScriptCore/inspector/agents -I../../Source/JavaScriptCore/inspector/augmentable -I../../Source/JavaScriptCore/inspector/remote -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/llint -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/runtime -I../../Source/JavaScriptCore/tools -I../../Source/JavaScriptCore/wasm -I../../Source/JavaScriptCore/wasm/js -I../../Source/JavaScriptCore/yarr -IDerivedSources/JavaScriptCore -IDerivedSources/JavaScriptCore/inspector -IDerivedSources/JavaScriptCore/runtime -IDerivedSources/JavaScriptCore/yarr -I../../Source/bmalloc -IDerivedSources -I../../Source/ThirdParty -fdiagnostics-color=always -fcolor-diagnostics -Wextra -Wall -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -fno-strict-aliasing -fno-exceptions -fno-rtti -std=c++14 -gsplit-dwarf -g -fPIC -ffp-contract=off -MMD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-5.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-5.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-5.cpp.o -c DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-5.cpp In file included from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-5.cpp:8: ../../Source/JavaScriptCore/bytecode/GetterSetterAccessCase.cpp:69:12: error: no viable conversion from returned value of type 'unique_ptr<JSC::GetterSetterAccessCase>' to function return type 'unique_ptr<JSC::AccessCase>' return result; ^~~~~~ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:200:17: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<GetterSetterAccessCase>' to 'nullptr_t' for 1st argument constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { } ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:205:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<GetterSetterAccessCase>' to 'std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &&' for 1st argument unique_ptr(unique_ptr&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:220:2: note: candidate constructor [with _Up = JSC::GetterSetterAccessCase, _Ep = std::default_delete<JSC::GetterSetterAccessCase>, $2 = void] not viable: no known conversion from 'std::unique_ptr<GetterSetterAccessCase>' to 'unique_ptr<JSC::GetterSetterAccessCase, std::default_delete<JSC::GetterSetterAccessCase> > &&' for 1st argument unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:356:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<GetterSetterAccessCase>' to 'const std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &' for 1st argument unique_ptr(const unique_ptr&) = delete; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:228:2: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' unique_ptr(auto_ptr<_Up>&& __u) noexcept; ^ In file included from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-5.cpp:8: ../../Source/JavaScriptCore/bytecode/GetterSetterAccessCase.cpp:79:12: error: no viable conversion from returned value of type 'unique_ptr<JSC::GetterSetterAccessCase>' to function return type 'unique_ptr<JSC::AccessCase>' return result; ^~~~~~ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:200:17: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<GetterSetterAccessCase>' to 'nullptr_t' for 1st argument constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { } ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:205:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<GetterSetterAccessCase>' to 'std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &&' for 1st argument unique_ptr(unique_ptr&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:220:2: note: candidate constructor [with _Up = JSC::GetterSetterAccessCase, _Ep = std::default_delete<JSC::GetterSetterAccessCase>, $2 = void] not viable: no known conversion from 'std::unique_ptr<GetterSetterAccessCase>' to 'unique_ptr<JSC::GetterSetterAccessCase, std::default_delete<JSC::GetterSetterAccessCase> > &&' for 1st argument unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:356:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<GetterSetterAccessCase>' to 'const std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &' for 1st argument unique_ptr(const unique_ptr&) = delete; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:228:2: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' unique_ptr(auto_ptr<_Up>&& __u) noexcept; ^ In file included from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-5.cpp:8: ../../Source/JavaScriptCore/bytecode/GetterSetterAccessCase.cpp:100:12: error: no viable conversion from returned value of type 'unique_ptr<JSC::GetterSetterAccessCase>' to function return type 'unique_ptr<JSC::AccessCase>' return result; ^~~~~~ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:200:17: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<GetterSetterAccessCase>' to 'nullptr_t' for 1st argument constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { } ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:205:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<GetterSetterAccessCase>' to 'std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &&' for 1st argument unique_ptr(unique_ptr&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:220:2: note: candidate constructor [with _Up = JSC::GetterSetterAccessCase, _Ep = std::default_delete<JSC::GetterSetterAccessCase>, $2 = void] not viable: no known conversion from 'std::unique_ptr<GetterSetterAccessCase>' to 'unique_ptr<JSC::GetterSetterAccessCase, std::default_delete<JSC::GetterSetterAccessCase> > &&' for 1st argument unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:356:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<GetterSetterAccessCase>' to 'const std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &' for 1st argument unique_ptr(const unique_ptr&) = delete; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:228:2: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' unique_ptr(auto_ptr<_Up>&& __u) noexcept; ^ 3 errors generated. [1322/1458] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScri...ivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-7.cpp.o FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-7.cpp.o /usr/bin/clang++ -DBUILDING_JSCONLY__ -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DHAVE_CONFIG_H=1 -DJavaScriptCore_EXPORTS -DSTATICALLY_LINKED_WITH_WTF -IDerivedSources/ForwardingHeaders -I. -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/b3 -I../../Source/JavaScriptCore/b3/air -I../../Source/JavaScriptCore/bindings -I../../Source/JavaScriptCore/builtins -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/disassembler/ARM64 -I../../Source/JavaScriptCore/disassembler/udis86 -I../../Source/JavaScriptCore/domjit -I../../Source/JavaScriptCore/ftl -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/debugger -I../../Source/JavaScriptCore/inspector -I../../Source/JavaScriptCore/inspector/agents -I../../Source/JavaScriptCore/inspector/augmentable -I../../Source/JavaScriptCore/inspector/remote -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/llint -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/runtime -I../../Source/JavaScriptCore/tools -I../../Source/JavaScriptCore/wasm -I../../Source/JavaScriptCore/wasm/js -I../../Source/JavaScriptCore/yarr -IDerivedSources/JavaScriptCore -IDerivedSources/JavaScriptCore/inspector -IDerivedSources/JavaScriptCore/runtime -IDerivedSources/JavaScriptCore/yarr -I../../Source/bmalloc -IDerivedSources -I../../Source/ThirdParty -fdiagnostics-color=always -fcolor-diagnostics -Wextra -Wall -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -fno-strict-aliasing -fno-exceptions -fno-rtti -std=c++14 -gsplit-dwarf -g -fPIC -ffp-contract=off -MMD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-7.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-7.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-7.cpp.o -c DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-7.cpp In file included from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-7.cpp:4: ../../Source/JavaScriptCore/bytecode/IntrinsicGetterAccessCase.cpp:54:12: error: no viable conversion from returned value of type 'unique_ptr<JSC::IntrinsicGetterAccessCase>' to function return type 'unique_ptr<JSC::AccessCase>' return result; ^~~~~~ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:200:17: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<IntrinsicGetterAccessCase>' to 'nullptr_t' for 1st argument constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { } ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:205:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<IntrinsicGetterAccessCase>' to 'std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &&' for 1st argument unique_ptr(unique_ptr&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:220:2: note: candidate constructor [with _Up = JSC::IntrinsicGetterAccessCase, _Ep = std::default_delete<JSC::IntrinsicGetterAccessCase>, $2 = void] not viable: no known conversion from 'std::unique_ptr<IntrinsicGetterAccessCase>' to 'unique_ptr<JSC::IntrinsicGetterAccessCase, std::default_delete<JSC::IntrinsicGetterAccessCase> > &&' for 1st argument unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:356:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<IntrinsicGetterAccessCase>' to 'const std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &' for 1st argument unique_ptr(const unique_ptr&) = delete; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:228:2: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' unique_ptr(auto_ptr<_Up>&& __u) noexcept; ^ 1 error generated. [1323/1458] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScri...ivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-8.cpp.o FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-8.cpp.o /usr/bin/clang++ -DBUILDING_JSCONLY__ -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DHAVE_CONFIG_H=1 -DJavaScriptCore_EXPORTS -DSTATICALLY_LINKED_WITH_WTF -IDerivedSources/ForwardingHeaders -I. -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/b3 -I../../Source/JavaScriptCore/b3/air -I../../Source/JavaScriptCore/bindings -I../../Source/JavaScriptCore/builtins -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/disassembler/ARM64 -I../../Source/JavaScriptCore/disassembler/udis86 -I../../Source/JavaScriptCore/domjit -I../../Source/JavaScriptCore/ftl -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/debugger -I../../Source/JavaScriptCore/inspector -I../../Source/JavaScriptCore/inspector/agents -I../../Source/JavaScriptCore/inspector/augmentable -I../../Source/JavaScriptCore/inspector/remote -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/llint -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/runtime -I../../Source/JavaScriptCore/tools -I../../Source/JavaScriptCore/wasm -I../../Source/JavaScriptCore/wasm/js -I../../Source/JavaScriptCore/yarr -IDerivedSources/JavaScriptCore -IDerivedSources/JavaScriptCore/inspector -IDerivedSources/JavaScriptCore/runtime -IDerivedSources/JavaScriptCore/yarr -I../../Source/bmalloc -IDerivedSources -I../../Source/ThirdParty -fdiagnostics-color=always -fcolor-diagnostics -Wextra -Wall -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -fno-strict-aliasing -fno-exceptions -fno-rtti -std=c++14 -gsplit-dwarf -g -fPIC -ffp-contract=off -MMD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-8.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-8.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-8.cpp.o -c DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-8.cpp In file included from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-8.cpp:2: ../../Source/JavaScriptCore/bytecode/ModuleNamespaceAccessCase.cpp:61:12: error: no viable conversion from returned value of type 'unique_ptr<JSC::ModuleNamespaceAccessCase>' to function return type 'unique_ptr<JSC::AccessCase>' return result; ^~~~~~ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:200:17: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<ModuleNamespaceAccessCase>' to 'nullptr_t' for 1st argument constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { } ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:205:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<ModuleNamespaceAccessCase>' to 'std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &&' for 1st argument unique_ptr(unique_ptr&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:220:2: note: candidate constructor [with _Up = JSC::ModuleNamespaceAccessCase, _Ep = std::default_delete<JSC::ModuleNamespaceAccessCase>, $2 = void] not viable: no known conversion from 'std::unique_ptr<ModuleNamespaceAccessCase>' to 'unique_ptr<JSC::ModuleNamespaceAccessCase, std::default_delete<JSC::ModuleNamespaceAccessCase> > &&' for 1st argument unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:356:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<ModuleNamespaceAccessCase>' to 'const std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &' for 1st argument unique_ptr(const unique_ptr&) = delete; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:228:2: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' unique_ptr(auto_ptr<_Up>&& __u) noexcept; ^ 1 error generated. [1324/1458] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScri...ivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-9.cpp.o FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-9.cpp.o /usr/bin/clang++ -DBUILDING_JSCONLY__ -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DHAVE_CONFIG_H=1 -DJavaScriptCore_EXPORTS -DSTATICALLY_LINKED_WITH_WTF -IDerivedSources/ForwardingHeaders -I. -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/b3 -I../../Source/JavaScriptCore/b3/air -I../../Source/JavaScriptCore/bindings -I../../Source/JavaScriptCore/builtins -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/disassembler/ARM64 -I../../Source/JavaScriptCore/disassembler/udis86 -I../../Source/JavaScriptCore/domjit -I../../Source/JavaScriptCore/ftl -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/debugger -I../../Source/JavaScriptCore/inspector -I../../Source/JavaScriptCore/inspector/agents -I../../Source/JavaScriptCore/inspector/augmentable -I../../Source/JavaScriptCore/inspector/remote -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/llint -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/runtime -I../../Source/JavaScriptCore/tools -I../../Source/JavaScriptCore/wasm -I../../Source/JavaScriptCore/wasm/js -I../../Source/JavaScriptCore/yarr -IDerivedSources/JavaScriptCore -IDerivedSources/JavaScriptCore/inspector -IDerivedSources/JavaScriptCore/runtime -IDerivedSources/JavaScriptCore/yarr -I../../Source/bmalloc -IDerivedSources -I../../Source/ThirdParty -fdiagnostics-color=always -fcolor-diagnostics -Wextra -Wall -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -fno-strict-aliasing -fno-exceptions -fno-rtti -std=c++14 -gsplit-dwarf -g -fPIC -ffp-contract=off -MMD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-9.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-9.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-9.cpp.o -c DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-9.cpp In file included from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f0a787a9-9.cpp:5: ../../Source/JavaScriptCore/bytecode/ProxyableAccessCase.cpp:55:12: error: no viable conversion from returned value of type 'unique_ptr<JSC::ProxyableAccessCase>' to function return type 'unique_ptr<JSC::AccessCase>' return result; ^~~~~~ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:200:17: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<ProxyableAccessCase>' to 'nullptr_t' for 1st argument constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { } ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:205:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<ProxyableAccessCase>' to 'std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &&' for 1st argument unique_ptr(unique_ptr&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:220:2: note: candidate constructor [with _Up = JSC::ProxyableAccessCase, _Ep = std::default_delete<JSC::ProxyableAccessCase>, $2 = void] not viable: no known conversion from 'std::unique_ptr<ProxyableAccessCase>' to 'unique_ptr<JSC::ProxyableAccessCase, std::default_delete<JSC::ProxyableAccessCase> > &&' for 1st argument unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:356:7: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<ProxyableAccessCase>' to 'const std::unique_ptr<JSC::AccessCase, std::default_delete<JSC::AccessCase> > &' for 1st argument unique_ptr(const unique_ptr&) = delete; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:228:2: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' unique_ptr(auto_ptr<_Up>&& __u) noexcept; ^ 1 error generated. ninja: build stopped: subcommand failed.
Michael Catanzaro
Comment 25 2019-03-21 13:47:39 PDT
Tuti
Comment 26 2019-03-24 01:41:42 PDT
Almost there :) 🙏🏻 [1371/1460] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScri...ivedSources/JavaScriptCore/unified-sources/UnifiedSource-84c9f43f-5.cpp.o FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-84c9f43f-5.cpp.o /usr/bin/clang++ -DBUILDING_JSCONLY__ -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DHAVE_CONFIG_H=1 -DJavaScriptCore_EXPORTS -DSTATICALLY_LINp In file included from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-84c9f43f-5.cpp:2: ../../Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp:419:12: error: no viable conversion from returned value of type 'WTF::Ref<Ins' return location; ^~~~~~~~ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:57:19: note: candidate constructor not viable: no known conversion from 'WTF::Ref<Inspector::Protocol::t ALWAYS_INLINE RefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:58:19: note: candidate constructor not viable: no known conversion from 'WTF::Ref<Inspector::Protocol::t ALWAYS_INLINE RefPtr(const RefPtr& o) : m_ptr(o.m_ptr) { refIfNotNull(PtrTraits::unwrap(m_ptr)); } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:61:19: note: candidate constructor not viable: no known conversion from 'WTF::Ref<Inspector::Protocol::t ALWAYS_INLINE RefPtr(RefPtr&& o) : m_ptr(o.leakRef()) { } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:63:38: note: candidate constructor [with X = Inspector::Protocol::Debugger::Location, Y = WTF::DumbPtrTt template<typename X, typename Y> RefPtr(Ref<X, Y>&&); ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:66:5: note: candidate constructor not viable: no known conversion from 'WTF::Ref<Inspector::Protocol::Dt RefPtr(HashTableDeletedValueType) : m_ptr(hashTableDeletedValue()) { } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:59:38: note: candidate template ignored: could not match 'RefPtr' against 'Ref' template<typename X, typename Y> RefPtr(const RefPtr<X, Y>& o) : m_ptr(o.get()) { refIfNotNull(PtrTraits::unwrap(m_ptr)); } ^ DerivedSources/ForwardingHeaders/wtf/RefPtr.h:62:38: note: candidate template ignored: could not match 'RefPtr' against 'Ref' template<typename X, typename Y> RefPtr(RefPtr<X, Y>&& o) : m_ptr(o.leakRef()) { } ^ DerivedSources/ForwardingHeaders/wtf/Ref.h:122:5: note: candidate function operator T&() const { ASSERT(m_ptr); return *PtrTraits::unwrap(m_ptr); } ^ 1 error generated. [1379/1460] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/wasm/WasmAirIRGenerator.cpp.o FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/wasm/WasmAirIRGenerator.cpp.o /usr/bin/clang++ -DBUILDING_JSCONLY__ -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DHAVE_CONFIG_H=1 -DJavaScriptCore_EXPORTS -DSTATICALLY_LINp In file included from ../../Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:27: In file included from ../../Source/JavaScriptCore/wasm/WasmAirIRGenerator.h:30: In file included from ../../Source/JavaScriptCore/wasm/WasmB3IRGenerator.h:30: In file included from ../../Source/JavaScriptCore/b3/B3Common.h:31: In file included from ../../Source/JavaScriptCore/jit/GPRInfo.h:28: In file included from ../../Source/JavaScriptCore/assembler/MacroAssembler.h:30: In file included from ../../Source/JavaScriptCore/runtime/JSCJSValue.h:36: In file included from DerivedSources/ForwardingHeaders/wtf/MediaTime.h:32: In file included from DerivedSources/ForwardingHeaders/wtf/JSONValues.h:36: In file included from DerivedSources/ForwardingHeaders/wtf/text/StringHash.h:25: In file included from DerivedSources/ForwardingHeaders/wtf/text/AtomicString.h:25: In file included from DerivedSources/ForwardingHeaders/wtf/text/AtomicStringImpl.h:23: In file included from DerivedSources/ForwardingHeaders/wtf/text/UniquedStringImpl.h:28: In file included from DerivedSources/ForwardingHeaders/wtf/text/StringImpl.h:29: DerivedSources/ForwardingHeaders/wtf/Expected.h:268:61: error: call to deleted constructor of 'value_type' (aka 'std::unique_ptr<JSC::Wasm::InternalF) constexpr storage(value_tag_t, const value_type& val) : val(val) { } ^ ~~~ DerivedSources/ForwardingHeaders/wtf/Expected.h:329:62: note: in instantiation of member function 'std::experimental::fundamentals_v3::__expected_dete constexpr base(value_tag_t tag, const value_type& val) : s(tag, val), has(true) { } ^ DerivedSources/ForwardingHeaders/wtf/Expected.h:435:47: note: in instantiation of member function 'std::experimental::fundamentals_v3::__expected_dete constexpr expected(const value_type& e) : base(__expected_detail::value_tag, e) { } ^ ../../Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:1975:12: note: in instantiation of member function 'std::experimental::fundamentals_v3::expece return result; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:356:7: note: 'unique_ptr' has been explicitly marked delete unique_ptr(const unique_ptr&) = delete; ^ 1 error generated. [1388/1460] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScri...ivedSources/JavaScriptCore/unified-sources/UnifiedSource-95324de6-1.cpp.o ninja: build stopped: subcommand failed.
Michael Catanzaro
Comment 27 2019-03-24 10:03:57 PDT
You're building only JSC? At this point I really think we should just drop clang 3.8, especially if it will only work for JSC. Fixing two more returns is no big deal, but there are another 72 build targets remaining. Can you try following the pattern I've shown in the above commits to see how many more changes are required to build? You just have to change: return foo; To: return ReturnType { WTFMove(foo) }; That pattern holds for all cases so far. E.g.: diff --git a/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp b/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp index 7e3dc65e645..4916edbc6b8 100644 --- a/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp +++ b/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp @@ -416,7 +416,7 @@ static RefPtr<Protocol::Debugger::Location> buildDebuggerLocation(const JSC::Bre .release(); location->setColumnNumber(breakpoint.column); - return location; + return RefPtr<Protocol::Debugger::Location> { WTFMove(location) }; } static bool parseLocation(ErrorString& errorString, const JSON::Object& location, JSC::SourceID& sourceID, unsigned& lineNumber, unsigned& columnNumber) diff --git a/Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp b/Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp index e1751196f93..910383651ae 100644 --- a/Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp +++ b/Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp @@ -1972,7 +1972,7 @@ Expected<std::unique_ptr<InternalFunction>, String> parseAndCompileAir(Compilati result->entrypoint.calleeSaveRegisters = code.calleeSaveRegisterAtOffsetList(); } - return result; + return Expected<std::unique_ptr<InternalFunction> String> { WTFMove(result) }; } template <typename IntType>
Michael Catanzaro
Comment 28 2019-03-24 10:05:21 PDT
(In reply to Michael Catanzaro from comment #27) > - return result; > + return Expected<std::unique_ptr<InternalFunction> String> { > WTFMove(result) }; Actually I missed a comma there, should be: > - return result; > + return Expected<std::unique_ptr<InternalFunction>, String> { > WTFMove(result) };
Alexey Proskuryakov
Comment 29 2019-03-25 09:57:50 PDT
> Note clang 3.8 is *really* old, July 2016. How far back does Apple support old clang versions? The oldest version that we need to support is what EWS and older macOS bots build with. I don't know how to convert version numbers though, "clang --version" says "Apple LLVM version 9.1.0 (clang-902.0.39.1)".
Michael Catanzaro
Comment 30 2019-03-25 10:08:47 PDT
I think that's clang 9 (current development version). clang 8 was just released.
Michael Catanzaro
Comment 31 2019-04-01 06:21:37 PDT
(In reply to Michael Catanzaro from comment #27) > You're building only JSC? > > At this point I really think we should just drop clang 3.8, especially if it > will only work for JSC. Fixing two more returns is no big deal, but there > are another 72 build targets remaining. Can you try following the pattern > I've shown in the above commits to see how many more changes are required to > build? For now I plan to revert these partial fixes, since they don't fix the build with clang 3.8 and they make the code worse. If we really want to support building JSC with clang 3.8, we could do that once we know how many more return statements need to be changed. Seems building WebKit itself was already broken, and it's surely impractical to avoid that now.
Michael Catanzaro
Comment 32 2019-04-01 08:32:18 PDT
Darin Adler
Comment 33 2019-04-01 08:35:25 PDT
To follow up, for clarity, we can put some minimum clang build version checking in Compiler.h. Don’t we already have minimum gcc build checking there?
Michael Catanzaro
Comment 34 2019-04-01 10:00:49 PDT
(In reply to Darin Adler from comment #33) > To follow up, for clarity, we can put some minimum clang build version > checking in Compiler.h. Don’t we already have minimum gcc build checking > there? I had to do some searching, but the check is only in CMakeLists.txt now: https://trac.webkit.org/changeset/231152/webkit That's a better place, since that fails much earlier than Compiler.h. I could add a similar check for Clang if I knew the min version that actually worked, but it'd have to be duplicated for XCode and the CMake check might not be maintained very well. Currently we have: if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang") set(COMPILER_IS_CLANG ON) endif () if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "6.0.0") message(FATAL_ERROR "GCC 6.0.0 is required to build WebKitGTK+, use a newer GCC version or clang") endif () endif () Would be easy to add a Clang check there. Should probably also remove WebKitGTK+ from the error message as that code runs for every port....
WebKit Commit Bot
Comment 35 2019-04-01 10:27:58 PDT
Comment on attachment 366397 [details] Patch Clearing flags on attachment: 366397 Committed r243697: <https://trac.webkit.org/changeset/243697>
WebKit Commit Bot
Comment 36 2019-04-01 10:28:00 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.