Bug 233448 - [CMake][MSVC] Compile with /permissive-
Summary: [CMake][MSVC] Compile with /permissive-
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: CMake (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Fujii Hironori
URL:
Keywords:
Depends on: 234498 234501 234503 234504 234505 234546
Blocks: 233963
  Show dependency treegraph
 
Reported: 2021-11-23 09:04 PST by Don Olmstead
Modified: 2022-01-06 12:00 PST (History)
14 users (show)

See Also:


Attachments
WIP Patch (6.05 KB, patch)
2021-11-23 09:26 PST, Don Olmstead
no flags Details | Formatted Diff | Diff
Patch (1.83 KB, patch)
2021-12-21 22:48 PST, Fujii Hironori
no flags Details | Formatted Diff | Diff
Patch (1.77 KB, patch)
2022-01-05 15:56 PST, Fujii Hironori
Hironori.Fujii: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Don Olmstead 2021-11-23 09:04:07 PST
It provides better C++ conformance and will be turned on when compiling C++20.
Comment 1 Don Olmstead 2021-11-23 09:26:30 PST
Created attachment 445038 [details]
WIP Patch
Comment 2 EWS Watchlist 2021-11-23 09:27:42 PST
Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE
Comment 3 Fujii Hironori 2021-12-20 21:40:48 PST
I'm going to fix the compilation errors in sub tickets.
However, there are more warnings C5054 and C5055. I think we shoud suppress them.

Source\WebCore\rendering\style\RenderStyleConstants.h(1093): warning C5054: operator '|': deprecated between enumerations of different types
Source\WebCore\rendering\style\RenderStyleConstants.h(1094): warning C5054: operator '|': deprecated between enumerations of different types
Source\WebCore\rendering\style\RenderStyleConstants.h(1095): warning C5054: operator '|': deprecated between enumerations of different types
Source\WebCore\rendering\style\RenderStyleConstants.h(1096): warning C5054: operator '|': deprecated between enumerations of different types

Source\ThirdParty\ANGLE\src\libANGLE/Program.h(755): warning C5054: operator '+': deprecated between enumerations of different types
Source\ThirdParty\ANGLE\src\libANGLE/VertexArray.h(145): warning C5054: operator '+': deprecated between enumerations of different types
Source\ThirdParty\ANGLE\src\libANGLE/VertexArray.h(149): warning C5054: operator '+': deprecated between enumerations of different types
Source\ThirdParty\ANGLE\src\libANGLE/VertexArray.h(153): warning C5054: operator '+': deprecated between enumerations of different types

Source\WebCore\platform\graphics\nicosia\NicosiaAnimation.cpp(232): warning C5055: operator '!=': deprecated between enumerations and floating-point types

Source\WebCore\animation/CSSAnimation.cpp(103): warning C5055: operator '==': deprecated between enumerations and floating-point types

Source\WebCore\css/CSSComputedStyleDeclaration.cpp(3568): warning C5055: operator '==': deprecated between enumerations and floating-point types

Source\WebCore\dom/ViewportArguments.cpp(48): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(50): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(53): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(61): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(62): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(65): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(72): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(73): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(76): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(148): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(148): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(151): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(151): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(154): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(154): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(157): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(160): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(160): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(163): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(163): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(166): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(169): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(172): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(172): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(194): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(199): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(208): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(210): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(212): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(222): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(223): warning C5055: operator '==': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(225): warning C5055: operator '!=': deprecated between enumerations and floating-point types
Source\WebCore\dom/ViewportArguments.cpp(232): warning C5055: operator '==': deprecated between enumerations and floating-point types

Source\WebCore\dom/WheelEvent.cpp(64): warning C5055: operator '*': deprecated between enumerations and floating-point types
Source\WebCore\dom/WheelEvent.cpp(64): warning C5055: operator '*': deprecated between enumerations and floating-point types
Comment 4 Fujii Hironori 2021-12-21 22:48:09 PST
Created attachment 447783 [details]
Patch
Comment 5 Fujii Hironori 2021-12-21 23:39:19 PST
WinCairo EWS failed to compile.

FAILED: Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/common/MemoryBuffer.cpp.obj 
C:\MSVS\VC\Tools\MSVC\14.28.29910\bin\Hostx64\x64\cl.exe  (...) ..\..\Source\ThirdParty\ANGLE\src\common\MemoryBuffer.cpp
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt\wrl\module.h(1427): error C2039: 'CheckForDuplicateEntries': is not a member of 'Microsoft::WRL::Details'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt\wrl\module.h(1393): note: see declaration of 'Microsoft::WRL::Details'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt\wrl\module.h(1540): note: see reference to class template instantiation 'Microsoft::WRL::Module<Microsoft::WRL::InProc,ModuleT>' being compiled
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt\wrl\module.h(1433): error C2039: 'CheckForDuplicateEntries': is not a member of 'Microsoft::WRL::Details'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt\wrl\module.h(1393): note: see declaration of 'Microsoft::WRL::Details'

I don't see such error on my env. I'm using Visual Studio 2019 16.11.8.
Comment 6 Fujii Hironori 2022-01-04 11:50:12 PST
Oh, no. WinCairo EWS is still failing after updating.

FAILED: Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/compiler/translator/ValidateMaxParameters.cpp.obj 
C:\MSVS\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe (...) C:\BW\WinCairo-EWS\build\Source\ThirdParty\ANGLE\src\compiler\translator\ValidateMaxParameters.cpp
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt\wrl\module.h(1427): error C2039: 'CheckForDuplicateEntries': is not a member of 'Microsoft::WRL::Details'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt\wrl\module.h(1393): note: see declaration of 'Microsoft::WRL::Details'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt\wrl\module.h(1540): note: see reference to class template instantiation 'Microsoft::WRL::Module<Microsoft::WRL::InProc,ModuleT>' being compiled
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt\wrl\module.h(1433): error C2039: 'CheckForDuplicateEntries': is not a member of 'Microsoft::WRL::Details'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt\wrl\module.h(1393): note: see declaration of 'Microsoft::WRL::Details'
Comment 7 Fujii Hironori 2022-01-04 12:11:52 PST
I downgraded Windows 10 SDK to 10.0.17763.0 locally. It can reproduce the same error.
Comment 8 Stephan Szabo 2022-01-05 07:39:10 PST
It appears to have built with test image using 18362, but I need to check that the update works okay on the non-ews builder and tester.
Comment 9 Fujii Hironori 2022-01-05 15:56:16 PST
Created attachment 448447 [details]
Patch
Comment 10 Fujii Hironori 2022-01-06 12:00:56 PST
Bug 233963 turned C++20 on. We no longer need to explicitly set /permissive-. Closed.
I'm going to suppress the warnings in another bug:
  Bug 234929 – [MSVC] Suppress new warnings C5054 and C5055 introduced by /permissive-