Bug 189467

Summary: [MSVC] X86Assembler.h(108): error C2666: 'WebCore::operator -': 7 overloads have similar conversions
Product: WebKit Reporter: Fujii Hironori <Hironori.Fujii>
Component: JavaScriptCoreAssignee: Fujii Hironori <Hironori.Fujii>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, ews-watchlist, keith_miller, mark.lam, msaboff, ross.kirsling, saam, webkit-bug-importer, ysuzuki
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=191538
https://bugs.webkit.org/show_bug.cgi?id=191853
Bug Depends on: 189987    
Bug Blocks:    
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Patch none

Description Fujii Hironori 2018-09-09 20:21:13 PDT
[WinCairo] X86Assembler.h(108): error C2666: 'WebCore::operator -': 7 overloads have similar conversions

https://build.webkit.org/builders/WinCairo%2064-bit%20WKL%20Release%20%28Build%29/builds/3095

> FAILED: Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-sources/UnifiedSource43.cpp.obj 
> "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\bin\Hostx64\x64\cl.exe"  /nologo /TP -DBUILDING_WEBKIT -DBUILDING_WITH_CMAKE=1 -DBUILDING_WebKit -DHAVE_CONFIG_H=1 -DNOMINMAX -DUCHAR_TYPE=wchar_t -DUNICODE -DUSE_CAIRO=1 -DUSE_CURL=1 -DWINVER=0x601 -DWTF_PLATFORM_WIN_CAIRO=1 -DWebKit_EXPORTS -D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1 -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_UNICODE -D_WIN32_WINNT=0x601 -D_WINDOWS -D_WINSOCKAPI_="" -I..\..\WebKitLibraries\win\include -I..\..\Source\WebKit -I..\..\Source\WebKit\NetworkProcess -I..\..\Source\WebKit\NetworkProcess\Cookies -I..\..\Source\WebKit\NetworkProcess\CustomProtocols -I..\..\Source\WebKit\NetworkProcess\Downloads -I..\..\Source\WebKit\NetworkProcess\FileAPI -I..\..\Source\WebKit\NetworkProcess\cache -I..\..\Source\WebKit\NetworkProcess\capture -I..\..\Source\WebKit\NetworkProcess\watchos -I..\..\Source\WebKit\NetworkProcess\webrtc -I..\..\Source\WebKit\Platform -I..\..\Source\WebKit\Platform\IPC -I..\..\Source\WebKit\PluginProcess -I..\..\Source\WebKit\Shared -I..\..\Source\WebKit\Shared\API -I..\..\Source\WebKit\Shared\API\c -I..\..\Source\WebKit\Shared\Authentication -I..\..\Source\WebKit\Shared\CoreIPCSupport -I..\..\Source\WebKit\Shared\Databases -I..\..\Source\WebKit\Shared\Databases\IndexedDB -I..\..\Source\WebKit\Shared\FileAPI -I..\..\Source\WebKit\Shared\Gamepad -I..\..\Source\WebKit\Shared\Plugins -I..\..\Source\WebKit\Shared\Plugins\Netscape -I..\..\Source\WebKit\Shared\Plugins\Netscape\x11 -I..\..\Source\WebKit\Shared\RemoteLayerTree -I..\..\Source\WebKit\Shared\Storage -I..\..\Source\WebKit\Shared\WebsiteData -I..\..\Source\WebKit\StorageProcess -I..\..\Source\WebKit\StorageProcess\IndexedDB -I..\..\Source\WebKit\StorageProcess\ServiceWorker -I..\..\Source\WebKit\UIProcess -I..\..\Source\WebKit\UIProcess\API -I..\..\Source\WebKit\UIProcess\API\C -I..\..\Source\WebKit\UIProcess\API\cpp -I..\..\Source\WebKit\UIProcess\ApplePay -I..\..\Source\WebKit\UIProcess\Authentication -I..\..\Source\WebKit\UIProcess\Automation -I..\..\Source\WebKit\UIProcess\Downloads -I..\..\Source\WebKit\UIProcess\Gamepad -I..\..\Source\WebKit\UIProcess\Launcher -I..\..\Source\WebKit\UIProcess\Network -I..\..\Source\WebKit\UIProcess\Network\CustomProtocols -I..\..\Source\WebKit\UIProcess\Notifications -I..\..\Source\WebKit\UIProcess\Plugins -I..\..\Source\WebKit\UIProcess\RemoteLayerTree -I..\..\Source\WebKit\UIProcess\Storage -I..\..\Source\WebKit\UIProcess\UserContent -I..\..\Source\WebKit\UIProcess\WebStorage -I..\..\Source\WebKit\UIProcess\WebsiteData -I..\..\Source\WebKit\WebProcess -I..\..\Source\WebKit\WebProcess\ApplePay -I..\..\Source\WebKit\WebProcess\ApplicationCache -I..\..\Source\WebKit\WebProcess\Automation -I..\..\Source\WebKit\WebProcess\Cache -I..\..\Source\WebKit\WebProcess\Databases -I..\..\Source\WebKit\WebProcess\Databases\IndexedDB -I..\..\Source\WebKit\WebProcess\FileAPI -I..\..\Source\WebKit\WebProcess\FullScreen -I..\..\Source\WebKit\WebProcess\Gamepad -I..\..\Source\WebKit\WebProcess\Geolocation -I..\..\Source\WebKit\WebProcess\IconDatabase -I..\..\Source\WebKit\WebProcess\InjectedBundle -I..\..\Source\WebKit\WebProcess\InjectedBundle\API -I..\..\Source\WebKit\WebProcess\InjectedBundle\API\c -I..\..\Source\WebKit\WebProcess\InjectedBundle\DOM -I..\..\Source\WebKit\WebProcess\Launching -I..\..\Source\WebKit\WebProcess\MediaCache -I..\..\Source\WebKit\WebProcess\MediaStream -I..\..\Source\WebKit\WebProcess\Network -I..\..\Source\WebKit\WebProcess\Network\webrtc -I..\..\Source\WebKit\WebProcess\Notifications -I..\..\Source\WebKit\WebProcess\OriginData -I..\..\Source\WebKit\WebProcess\Plugins -I..\..\Source\WebKit\WebProcess\Plugins\Netscape -I..\..\Source\WebKit\WebProcess\ResourceCache -I..\..\Source\WebKit\WebProcess\Storage -I..\..\Source\WebKit\WebProcess\UserContent -I..\..\Source\WebKit\WebProcess\WebCoreSupport -I..\..\Source\WebKit\WebProcess\WebPage -I..\..\Source\WebKit\WebProcess\WebPage\RemoteLayerTree -I..\..\Source\WebKit\WebProcess\WebStorage -IDerivedSources\WebKit -IDerivedSources\WebKit\include -I..\..\Source -I..\..\WebKitLibraries -I..\..\Source\ThirdParty\ANGLE -I..\..\Source\ThirdParty\ANGLE\include\KHR -I..\..\Source\WebKit\NetworkProcess\win -I..\..\Source\WebKit\Platform\classifier -I..\..\Source\WebKit\PluginProcess\win -I..\..\Source\WebKit\Shared\API\c\win -I..\..\Source\WebKit\Shared\CoordinatedGraphics -I..\..\Source\WebKit\Shared\CoordinatedGraphics\threadedcompositor -I..\..\Source\WebKit\Shared\Plugins\win -I..\..\Source\WebKit\Shared\unix -I..\..\Source\WebKit\Shared\win -I..\..\Source\WebKit\StorageProcess\win -I..\..\Source\WebKit\UIProcess\API\C\cairo -I..\..\Source\WebKit\UIProcess\API\C\win -I..\..\Source\WebKit\UIProcess\API\cpp\win -I..\..\Source\WebKit\UIProcess\API\win -I..\..\Source\WebKit\UIProcess\Plugins\win -I..\..\Source\WebKit\UIProcess\win -I..\..\Source\WebKit\WebProcess\InjectedBundle\API\win -I..\..\Source\WebKit\WebProcess\InjectedBundle\API\win\DOM -I..\..\Source\WebKit\WebProcess\win -I..\..\Source\WebKit\WebProcess\WebCoreSupport\win -I..\..\Source\WebKit\WebProcess\WebPage\CoordinatedGraphics -I..\..\Source\WebKit\WebProcess\WebPage\win -I..\..\Source\WebKit\win -I..\..\Source\WebCore\platform\network\curl -I..\..\Source\WebKit\NetworkProcess\curl -I..\..\Source\WebKit\WebProcess\WebCoreSupport\curl -I..\..\WebKitLibraries\win\include\cairo -I. -I..\..\Source\WebCore -I..\..\Source\WebCore\Modules\airplay -I..\..\Source\WebCore\Modules\beacon -I..\..\Source\WebCore\Modules\applepay -I..\..\Source\WebCore\Modules\applepay\paymentrequest -I..\..\Source\WebCore\Modules\cache -I..\..\Source\WebCore\Modules\credentialmanagement -I..\..\Source\WebCore\Modules\encryptedmedia -I..\..\Source\WebCore\Modules\encryptedmedia\legacy -I..\..\Source\WebCore\Modules\entriesapi -I..\..\Source\WebCore\Modules\fetch -I..\..\Source\WebCore\Modules\geolocation -I..\..\Source\WebCore\Modules\indexeddb -I..\..\Source\WebCore\Modules\indexeddb\client -I..\..\Source\WebCore\Modules\indexeddb\server -I..\..\Source\WebCore\Modules\indexeddb\shared -I..\..\Source\WebCore\Modules\mediacapabilities -I..\..\Source\WebCore\Modules\mediacontrols -I..\..\Source\WebCore\Modules\mediasession -I..\..\Source\WebCore\Modules\mediasource -I..\..\Source\WebCore\Modules\mediastream -I..\..\Source\WebCore\Modules\navigatorcontentutils -I..\..\Source\WebCore\Modules\notifications -I..\..\Source\WebCore\Modules\paymentrequest -I..\..\Source\WebCore\Modules\plugins -I..\..\Source\WebCore\Modules\quota -I..\..\Source\WebCore\Modules\speech -I..\..\Source\WebCore\Modules\streams -I..\..\Source\WebCore\Modules\webaudio -I..\..\Source\WebCore\Modules\webauthn -I..\..\Source\WebCore\Modules\webdatabase -I..\..\Source\WebCore\Modules\webdriver -I..\..\Source\WebCore\Modules\websockets -I..\..\Source\WebCore\Modules\webvr -I..\..\Source\WebCore\accessibility -I..\..\Source\WebCore\animation -I..\..\Source\WebCore\bindings -I..\..\Source\WebCore\bindings\js -I..\..\Source\WebCore\bridge -I..\..\Source\WebCore\bridge\c -I..\..\Source\WebCore\bridge\jsc -I..\..\Source\WebCore\contentextensions -I..\..\Source\WebCore\crypto -I..\..\Source\WebCore\crypto\algorithms -I..\..\Source\WebCore\crypto\keys -I..\..\Source\WebCore\crypto\parameters -I..\..\Source\WebCore\css -I..\..\Source\WebCore\css\parser -I..\..\Source\WebCore\cssjit -I..\..\Source\WebCore\dom -I..\..\Source\WebCore\dom\default -I..\..\Source\WebCore\dom\messageports -I..\..\Source\WebCore\domjit -I..\..\Source\WebCore\editing -I..\..\Source\WebCore\fileapi -I..\..\Source\WebCore\history -I..\..\Source\WebCore\html -I..\..\Source\WebCore\html\canvas -I..\..\Source\WebCore\html\forms -I..\..\Source\WebCore\html\parser -I..\..\Source\WebCore\html\shadow -I..\..\Source\WebCore\html\track -I..\..\Source\WebCore\inspector -I..\..\Source\WebCore\inspector\agents -I..\..\Source\WebCore\inspector\agents\page -I..\..\Source\WebCore\inspector\agents\worker -I..\..\Source\WebCore\loader -I..\..\Source\WebCore\loader\appcache -I..\..\Source\WebCore\loader\archive -I..\..\Source\WebCore\loader\archive\mhtml -I..\..\Source\WebCore\loader\cache -I..\..\Source\WebCore\loader\icon -I..\..\Source\WebCore\mathml -I..\..\Source\WebCore\page -I..\..\Source\WebCore\page\animation -I..\..\Source\WebCore\page\csp -I..\..\Source\WebCore\page\scrolling -I..\..\Source\WebCore\platform -I..\..\Source\WebCore\platform\animation -I..\..\Source\WebCore\platform\audio -I..\..\Source\WebCore\platform\crypto -I..\..\Source\WebCore\platform\encryptedmedia -I..\..\Source\WebCore\platform\gamepad -I..\..\Source\WebCore\platform\graphics -I..\..\Source\WebCore\platform\graphics\cpu\arm -I..\..\Source\WebCore\platform\graphics\cpu\arm\filters -I..\..\Source\WebCore\platform\graphics\displaylists -I..\..\Source\WebCore\platform\graphics\filters -I..\..\Source\WebCore\platform\graphics\harfbuzz -I..\..\Source\WebCore\platform\graphics\harfbuzz\ng -I..\..\Source\WebCore\platform\graphics\iso -I..\..\Source\WebCore\platform\graphics\opentype -I..\..\Source\WebCore\platform\graphics\transforms -I..\..\Source\WebCore\platform\mediastream -I..\..\Source\WebCore\platform\mediastream\libwebrtc -I..\..\Source\WebCore\platform\mock -I..\..\Source\WebCore\platform\mock\mediasource -I..\..\Source\WebCore\platform\network -I..\..\Source\WebCore\platform\sql -I..\..\Source\WebCore\platform\text -I..\..\Source\WebCore\platform\text\icu -I..\..\Source\WebCore\platform\vr -I..\..\Source\WebCore\plugins -I..\..\Source\WebCore\rendering -I..\..\Source\WebCore\rendering\line -I..\..\Source\WebCore\rendering\mathml -I..\..\Source\WebCore\rendering\shapes -I..\..\Source\WebCore\rendering\style -I..\..\Source\WebCore\rendering\svg -I..\..\Source\WebCore\rendering\updating -I..\..\Source\WebCore\replay -I..\..\Source\WebCore\storage -I..\..\Source\WebCore\style -I..\..\Source\WebCore\svg -I..\..\Source\WebCore\svg\animation -I..\..\Source\WebCore\svg\graphics -I..\..\Source\WebCore\svg\graphics\filters -I..\..\Source\WebCore\svg\properties -I..\..\Source\WebCore\websockets -I..\..\Source\WebCore\workers -I..\..\Source\WebCore\workers\service -I..\..\Source\WebCore\workers\service\context -I..\..\Source\WebCore\workers\service\server -I..\..\Source\WebCore\xml -I..\..\Source\WebCore\xml\parser -IDerivedSources\WebCore -IDerivedSources\ForwardingHeaders\ANGLE -I..\..\Source\WebCore\platform\graphics\gpu -IDerivedSources\ForwardingHeaders -I..\include\private -I..\include\private\JavaScriptCore -I..\..\Source\WebCore\accessibility\win -I..\..\Source\WebCore\page\win -I..\..\Source\WebCore\platform\graphics\egl -I..\..\Source\WebCore\platform\graphics\opengl -I..\..\Source\WebCore\platform\graphics\win -I..\..\Source\WebCore\platform\mediacapabilities -I..\..\Source\WebCore\platform\network\win -I..\..\Source\WebCore\platform\win -I..\..\Source\ThirdParty\ANGLE\include -I..\..\Source\ThirdParty\ANGLE\include\egl -I..\..\Source\WebCore\platform\cf -I..\..\Source\WebCore\platform\cf\win -I..\..\Source\WebCore\platform\graphics\cairo -I..\..\Source\WebCore\platform\image-decoders -I..\..\Source\WebCore\platform\image-decoders\bmp -I..\..\Source\WebCore\platform\image-decoders\gif -I..\..\Source\WebCore\platform\image-decoders\ico -I..\..\Source\WebCore\platform\image-decoders\jpeg -I..\..\Source\WebCore\platform\image-decoders\png -I..\..\Source\WebCore\platform\image-decoders\webp -I..\..\Source\WebCore\platform\graphics\texmap -I..\..\Source\WebCore\loader\archive\cf -I..\..\Source\bmalloc -IDerivedSources -I..\..\Source\ThirdParty /DWIN32 /D_WINDOWS /W4 /GR- /EHs- /EHc-  /MD /O2 /Ob2 /DNDEBUG   /wd4018 /wd4068 /wd4099 /wd4100 /wd4127 /wd4138 /wd4146 /wd4180 /wd4189 /wd4201 /wd4206 /wd4244 /wd4251 /wd4267 /wd4275 /wd4288 /wd4291 /wd4305 /wd4309 /wd4344 /wd4355 /wd4389 /wd4396 /wd4456 /wd4457 /wd4458 /wd4459 /wd4481 /wd4503 /wd4505 /wd4510 /wd4512 /wd4530 /wd4610 /wd4611 /wd4646 /wd4702 /wd4706 /wd4722 /wd4800 /wd4819 /wd4951 /wd4952 /wd4996 /wd6011 /wd6031 /wd6211 /wd6246 /wd6255 /wd6387 /Zi /GS /EHa- /EHc- /EHs- /fp:except- /analyze- /bigobj /std:c++17 /utf-8 /validate-charset /Oy- /showIncludes /FoSource\WebKit\CMakeFiles\WebKit.dir\__\__\DerivedSources\WebKit\unified-sources\UnifiedSource43.cpp.obj /FdSource\WebKit\CMakeFiles\WebKit.dir\ /FS -c DerivedSources\WebKit\unified-sources\UnifiedSource43.cpp
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\javascriptcore\X86Assembler.h(108): error C2666: 'WebCore::operator -': 7 overloads have similar conversions
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\FontSelectionAlgorithm.h(119): note: could be 'WebCore::FontSelectionValue WebCore::operator -(WebCore::FontSelectionValue,WebCore::FontSelectionValue)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\FloatPoint3D.h(156): note: or       'WebCore::FloatPoint3D WebCore::operator -(const WebCore::FloatPoint3D &,const WebCore::FloatPoint3D &)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\LayoutPoint.h(140): note: or       'WebCore::LayoutPoint WebCore::operator -(const WebCore::LayoutPoint &,const WebCore::LayoutSize &)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\LayoutPoint.h(135): note: or       'WebCore::LayoutSize WebCore::operator -(const WebCore::LayoutPoint &,const WebCore::LayoutPoint &)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\LayoutSize.h(162): note: or       'WebCore::LayoutSize WebCore::operator -(const WebCore::LayoutSize &,const WebCore::LayoutSize &)'
> C:\WebKit-BuildWorker\wincairo-wkl-release\build\WebKitBuild\Release\DerivedSources\ForwardingHeaders\WebCore/FloatPoint.h(229): note: or       'WebCore::FloatPoint WebCore::operator -(const WebCore::FloatPoint &,const WebCore::FloatSize &)'
> C:\WebKit-BuildWorker\wincairo-wkl-release\build\WebKitBuild\Release\DerivedSources\ForwardingHeaders\WebCore/FloatPoint.h(224): note: or       'WebCore::FloatSize WebCore::operator -(const WebCore::FloatPoint &,const WebCore::FloatPoint &)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\FloatSize.h(180): note: or       'WebCore::FloatSize WebCore::operator -(const WebCore::FloatSize &,const WebCore::FloatSize &)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\IntRect.h(237): note: or       'WebCore::IntRect WebCore::operator -(const WebCore::IntRect &,const WebCore::IntPoint &)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\LayoutUnit.h(655): note: or       'float WebCore::operator -(const float,const WebCore::LayoutUnit &)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\LayoutUnit.h(650): note: or       'WebCore::LayoutUnit WebCore::operator -(const int,const WebCore::LayoutUnit &)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\LayoutUnit.h(645): note: or       'float WebCore::operator -(const WebCore::LayoutUnit &,float)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\LayoutUnit.h(640): note: or       'WebCore::LayoutUnit WebCore::operator -(const WebCore::LayoutUnit &,unsigned int)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\LayoutUnit.h(635): note: or       'WebCore::LayoutUnit WebCore::operator -(const WebCore::LayoutUnit &,int)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\LayoutUnit.h(628): note: or       'WebCore::LayoutUnit WebCore::operator -(const WebCore::LayoutUnit &,const WebCore::LayoutUnit &)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\IntPoint.h(184): note: or       'WebCore::IntPoint WebCore::operator -(const WebCore::IntPoint &,const WebCore::IntSize &)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\IntPoint.h(179): note: or       'WebCore::IntSize WebCore::operator -(const WebCore::IntPoint &,const WebCore::IntPoint &)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\webcore\IntSize.h(198): note: or       'WebCore::IntSize WebCore::operator -(const WebCore::IntSize &,const WebCore::IntSize &)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\javascriptcore\X86Assembler.h(108): note: or       'built-in C++ operator-(JSC::X86Assembler::RegisterID, JSC::X86Assembler::RegisterID)'
> c:\webkit-buildworker\wincairo-wkl-release\build\webkitbuild\release\derivedsources\forwardingheaders\javascriptcore\X86Assembler.h(108): note: while trying to match the argument list '(JSC::X86Assembler::RegisterID, JSC::X86Assembler::RegisterID)'
Comment 1 Fujii Hironori 2018-09-09 20:21:36 PDT
This reminds me Bug 188589 Comment 29.
Comment 2 Fujii Hironori 2018-09-09 21:44:10 PDT
This happens since Bug 189400 change.
Comment 3 Fujii Hironori 2018-09-09 21:44:59 PDT
Created attachment 349295 [details]
Patch
Comment 4 Fujii Hironori 2018-09-09 21:55:53 PDT
Comment on attachment 349295 [details]
Patch

Clearing flags on attachment: 349295

Committed r235839: <https://trac.webkit.org/changeset/235839>
Comment 5 Fujii Hironori 2018-09-09 21:55:56 PDT
All reviewed patches have been landed.  Closing bug.
Comment 6 Radar WebKit Bug Importer 2018-09-09 21:56:22 PDT
<rdar://problem/44290945>
Comment 7 Fujii Hironori 2018-09-09 21:56:41 PDT
Reopen to find a solution.
Comment 8 Radar WebKit Bug Importer 2018-09-09 21:56:57 PDT
<rdar://problem/44290955>
Comment 9 Fujii Hironori 2018-09-09 22:38:02 PDT
Reverted r235839 for reason:

Which breaks all Xcode based ports

Committed r235842: <https://trac.webkit.org/changeset/235842>
Comment 10 Fujii Hironori 2018-09-10 00:35:47 PDT
Created attachment 349298 [details]
Patch
Comment 11 Fujii Hironori 2018-09-10 01:58:36 PDT
Comment on attachment 349298 [details]
Patch

Clearing flags on attachment: 349298

Committed r235845: <https://trac.webkit.org/changeset/235845>
Comment 12 Fujii Hironori 2018-09-10 03:47:05 PDT
This is a MSVC bug fixed in the latest.
https://developercommunity.visualstudio.com/content/problem/315575/overload-resolution-for-built-in-operator-and-enum.html

WebKit can't update MSVC due to other bug (Bug 188635).

This issue happens under following conditions:

* LayoutUnit has non-explicit constructors
* using namespace WebCore
* X86Assembler.h is included after using namespace WebCore


There are possible workarounds:

* Include programmatic JSC header files before using namespace
* Remove all "using namespace {WebCore|WebKit};" in Source/WebKit/WebProcess/InjectedBundle/API/c/*.cpp
* Remove non-explicit constructors of LayoutUnit
* Do not unify source files in Source/WebKit/WebProcess/InjectedBundle/API/c/*.cpp
* Update MSVC (Bug 188635)
Comment 13 Fujii Hironori 2018-10-03 00:09:38 PDT
Remaining Task:

r235845 <https://trac.webkit.org/changeset/235845> should be reverted after the MSVC issue will be fixed and WinCairo build bots will be switched to the new VS (Bug 189987).
Comment 14 Alex Christensen 2018-11-15 17:18:11 PST
Comment on attachment 349298 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=349298&action=review

> Source/WebKit/ChangeLog:9
> +        MSVC reports compilation errors if certain JSC header files are
> +        included after "using namespace" statements.

I think we should probably remove the "using namespace" statements in question.
Comment 15 Fujii Hironori 2018-11-16 15:59:38 PST
This issue happens several times. And, it seems that it will take more time for Microsoft to fix the bug.
We need a effective workaround not to repeat this issue until they fix MSVC.
I think I should remove ": int8_t" of RegisterID only for COMPILER(MSVC).
Comment 16 Fujii Hironori 2018-11-18 21:13:04 PST
Created attachment 355252 [details]
Patch
Comment 17 Mark Lam 2018-11-18 21:28:21 PST
Comment on attachment 355252 [details]
Patch

r=me
Comment 18 Fujii Hironori 2018-11-19 03:05:05 PST
Thank you very much for the review. I'd like to wait for hours to get more feedbacks before landing.
Comment 19 Fujii Hironori 2018-11-19 17:38:40 PST
Comment on attachment 355252 [details]
Patch

Clearing flags on attachment: 355252

Committed r238386: <https://trac.webkit.org/changeset/238386>
Comment 20 Fujii Hironori 2018-11-19 17:38:44 PST
All reviewed patches have been landed.  Closing bug.
Comment 21 Fujii Hironori 2018-11-19 23:01:35 PST
Reopening to attach new patch.
Comment 22 Fujii Hironori 2018-11-19 23:02:08 PST
Created attachment 355314 [details]
Patch
Comment 23 Mark Lam 2018-11-19 23:04:10 PST
Comment on attachment 355314 [details]
Patch

You should do this in a separate bug.  Our practice is 1 change per bug.
Comment 24 Fujii Hironori 2018-11-19 23:18:37 PST
(In reply to Mark Lam from comment #23)
> You should do this in a separate bug.  Our practice is 1 change per bug.

Agreed.
Thank you for the feedback. I will do so.