WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
226251
Clang can't compile Optional<GPRTemporary> since
r278035
because GPRTemporary has non-const copy constructor
https://bugs.webkit.org/show_bug.cgi?id=226251
Summary
Clang can't compile Optional<GPRTemporary> since r278035 because GPRTemporary...
Fujii Hironori
Reported
2021-05-25 17:11:51 PDT
include\optional(95,5): error: the parameter for this explicitly-defaulted copy constructor is const, but a member or base requires it to be non-const Since
r278035
(
238131@main
) WinCairo Debug clang-cl can't compile. WinCairo Release clang-cl and MSVC can compile. [800/5730] Building CXX object Source\JavaScriptCore\CMakeFiles\JavaScriptCore.dir\dfg\DFGSpeculativeJIT64.cpp.obj FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/dfg/DFGSpeculativeJIT64.cpp.obj C:\PROGRA~1\LLVM\bin\clang-cl.exe /nologo -TP -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DHAVE_CONFIG_H=1 -DJavaScriptCore_EXPORTS -DNOCRYPT -DNOMINMAX -DUNICODE -DWINVER=0x601 -DWTF_PLATFORM_WIN_CAIRO=1 -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_UNICODE -D_WIN32_WINNT=0x601 -D_WINDOWS -D_WINSOCKAPI_="" -IJavaScriptCore\Headers -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 -IJavaScriptCore\DerivedSources -IJavaScriptCore\DerivedSources\inspector -IJavaScriptCore\DerivedSources\runtime -IJavaScriptCore\DerivedSources\yarr -I..\include\private -I..\..\Source\JavaScriptCore\inspector\remote\socket -IWTF\Headers -imsvc ..\..\WebKitLibraries\win\include /W4 -fdiagnostics-color=always -fcolor-diagnostics -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-unknown-argument -Wno-nonportable-include-path -Wno-unknown-pragmas -Wno-macro-redefined -Wno-undef /DWIN32 /D_WINDOWS /GR- /EHsc- -fno-strict-aliasing /MD /Zi /Ob0 /Od /RTC1 /wd4018 /wd4060 /wd4068 /wd4100 /wd4127 /wd4146 /wd4189 /wd4201 /wd4244 /wd4245 /wd4251 /wd4275 /wd4267 /wd4305 /wd4309 /wd4312 /wd4324 /wd4389 /wd4456 /wd4457 /wd4458 /wd4459 /wd4505 /wd4611 /wd4646 /wd4701 /wd4702 /wd4706 /wd4715 /wd4722 /wd4838 /wd4840 /wd4996 /wd5205 /Zi /GS /EHa- /EHc- /EHs- /fp:except- /analyze- /bigobj /utf-8 /validate-charset -fmsc-version=1911 -ffp-contract=off -fno-slp-vectorize -std:c++17 /showIncludes /FoSource\JavaScriptCore\CMakeFiles\JavaScriptCore.dir\dfg\DFGSpeculativeJIT64.cpp.obj /FdSource\JavaScriptCore\CMakeFiles\JavaScriptCore.dir\ -c -- ..\..\Source\JavaScriptCore\dfg\DFGSpeculativeJIT64.cpp In file included from ..\..\Source\JavaScriptCore\dfg\DFGSpeculativeJIT64.cpp:27: In file included from ..\..\Source\JavaScriptCore\dfg/DFGSpeculativeJIT.h:30: In file included from ..\..\Source\JavaScriptCore\heap/BlockDirectory.h:29: In file included from ..\..\Source\JavaScriptCore\heap/BlockDirectoryBits.h:29: In file included from WTF\Headers\wtf/FastBitVector.h:31: In file included from WTF\Headers\wtf/PrintStream.h:31: In file included from WTF\Headers\wtf/Forward.h:24: In file included from WTF\Headers\wtf/Optional.h:23: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\include\optional(95,5): error: the parameter for this explicitly-defaulted copy constructor is const, but a member or base requires it to be non-const _Optional_destruct_base(const _Optional_destruct_base&) = default; ^ C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\include\optional(109,35): note: in instantiation of template class 'std::_Optional_destruct_base<JSC::DFG::GPRTemporary, false>' requested here struct _Optional_construct_base : _Optional_destruct_base<_Ty> { ^ C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\include\xsmf_control.h(46,28): note: in instantiation of template class 'std::_Optional_construct_base<JSC::DFG::GPRTemporary>' requested here struct _Non_trivial_move : _SMF_control_copy<_Base, _Types...> { // non-trivial move construction facade ^ C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\include\xsmf_control.h(85,31): note: in instantiation of template class 'std::_Non_trivial_move<std::_Optional_construct_base<JSC::DFG::GPRTemporary>, JSC::DFG::GPRTemporary>' requested here struct _Deleted_copy_assign : _SMF_control_move<_Base, _Types...> { // deleted copy assignment facade ^ C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\include\xsmf_control.h(107,35): note: in instantiation of template class 'std::_Deleted_copy_assign<std::_Optional_construct_base<JSC::DFG::GPRTemporary>, JSC::DFG::GPRTemporary>' requested here struct _Non_trivial_move_assign : _SMF_control_copy_assign<_Base, _Types...> { // non-trivial move assignment facade ^ C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\include\optional(154,26): note: in instantiation of template class 'std::_Non_trivial_move_assign<std::_Optional_construct_base<JSC::DFG::GPRTemporary>, JSC::DFG::GPRTemporary>' requested here class optional : private _SMF_control<_Optional_construct_base<_Ty>, _Ty> { ^ ..\..\Source\JavaScriptCore\dfg\DFGSpeculativeJIT64.cpp(1935,32): note: in instantiation of template class 'std::optional<JSC::DFG::GPRTemporary>' requested here Optional<GPRTemporary> scratch; ^ 1 error generated.
Attachments
WIP patch
(559 bytes, patch)
2021-05-25 17:47 PDT
,
Fujii Hironori
no flags
Details
Formatted Diff
Diff
Patch
(1.63 KB, patch)
2021-05-25 18:24 PDT
,
Fujii Hironori
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Fujii Hironori
Comment 1
2021-05-25 17:15:32 PDT
(In reply to Fujii Hironori from
comment #0
)
> WinCairo Debug clang-cl can't compile. > WinCairo Release clang-cl and MSVC can compile.
Wrong. WinCairo Release clang-cl can't compile. clang-cl can't compile while MSVC can.
Fujii Hironori
Comment 2
2021-05-25 17:46:14 PDT
This? c++ - When are special member functions of a template class instantiated? - Stack Overflow
https://stackoverflow.com/q/10370713
Fujii Hironori
Comment 3
2021-05-25 17:47:20 PDT
Created
attachment 429718
[details]
WIP patch
Chris Dumez
Comment 4
2021-05-25 17:47:36 PDT
Have you tried replacing: GPRTemporary(GPRTemporary& other) = delete; with: GPRTemporary(const GPRTemporary& other) = delete; ?
Chris Dumez
Comment 5
2021-05-25 17:48:06 PDT
Comment on
attachment 429718
[details]
WIP patch View in context:
https://bugs.webkit.org/attachment.cgi?id=429718&action=review
> Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:2030 > + GPRTemporary(GPRTemporary&) = delete; >
Do we need both?
Fujii Hironori
Comment 6
2021-05-25 17:51:03 PDT
Comment on
attachment 429718
[details]
WIP patch View in context:
https://bugs.webkit.org/attachment.cgi?id=429718&action=review
>> Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:2030 >> > > Do we need both?
Oh, no I don't. Thanks.
Fujii Hironori
Comment 7
2021-05-25 18:24:31 PDT
Created
attachment 429723
[details]
Patch
Chris Dumez
Comment 8
2021-05-25 18:25:07 PDT
Comment on
attachment 429723
[details]
Patch r=me if the bots are happy.
EWS
Comment 9
2021-05-25 20:31:54 PDT
Committed
r278073
(
238152@main
): <
https://commits.webkit.org/238152@main
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 429723
[details]
.
Radar WebKit Bug Importer
Comment 10
2021-05-25 20:32:17 PDT
<
rdar://problem/78492076
>
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