WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
195947
REGRESSION(
r243115
) breaks build for clang 3.8
https://bugs.webkit.org/show_bug.cgi?id=195947
Summary
REGRESSION(r243115) breaks build for clang 3.8
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
Details
Patch
(1.43 KB, patch)
2019-03-19 13:13 PDT
,
Michael Catanzaro
no flags
Details
Formatted Diff
Diff
Patch
(9.71 KB, patch)
2019-04-01 08:32 PDT
,
Michael Catanzaro
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
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
Created
attachment 365217
[details]
Patch
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
Committed
r243215
: <
https://trac.webkit.org/changeset/243215
>
Michael Catanzaro
Comment 22
2019-03-20 11:03:43 PDT
Committed
r243216
: <
https://trac.webkit.org/changeset/243216
>
Radar WebKit Bug Importer
Comment 23
2019-03-20 11:03:45 PDT
<
rdar://problem/49069219
>
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
Committed
r243323
: <
https://trac.webkit.org/changeset/243323
>
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
Created
attachment 366397
[details]
Patch
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.
Top of Page
Format For Printing
XML
Clone This Bug