Bug 190071

Summary: [WinCairo] error C2027: use of undefined type 'WTF::EnumTraits<E>' while compiling AuthenticationChallengeProxy.cpp
Product: WebKit Reporter: Fujii Hironori <Hironori.Fujii>
Component: WebKit2Assignee: Fujii Hironori <Hironori.Fujii>
Status: RESOLVED FIXED    
Severity: Normal CC: webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Fujii Hironori 2018-09-27 23:37:03 PDT
WinCairo Debug builds can't compile AuthenticationChallengeProxy.cpp.

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

> [5941/6192] Building CXX object Source\WebKit\CMakeFiles\WebKit.dir\__\__\DerivedSources\WebKit\unified-sources\UnifiedSource34.cpp.obj
> FAILED: Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-sources/UnifiedSource34.cpp.obj 
> "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\bin\Hostx64\x64\cl.exe"  (...) /FS -c DerivedSources\WebKit\unified-sources\UnifiedSource34.cpp
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\WebKitBuild\Debug\DerivedSources\ForwardingHeaders\wtf/EnumTraits.h(59): error C2027: use of undefined type 'WTF::EnumTraits<E>'
>         with
>         [
>             E=WebKit::AuthenticationChallengeDisposition
>         ]
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\WebKitBuild\Debug\DerivedSources\ForwardingHeaders\wtf/EnumTraits.h(59): note: see declaration of 'WTF::EnumTraits<E>'
>         with
>         [
>             E=WebKit::AuthenticationChallengeDisposition
>         ]
> c:\webkit-buildworker\wincairo-wkl-debug\build\source\webkit\platform\ipc\Encoder.h(116): note: see reference to function template instantiation 'bool WTF::isValidEnum<E,uint64_t>(T)' being compiled
>         with
>         [
>             E=WebKit::AuthenticationChallengeDisposition,
>             T=uint64_t
>         ]
> c:\webkit-buildworker\wincairo-wkl-debug\build\source\webkit\platform\ipc\Encoder.h(84): note: see reference to function template instantiation 'void IPC::Encoder::encode<WebKit::AuthenticationChallengeDisposition>(E)' being compiled
>         with
>         [
>             E=WebKit::AuthenticationChallengeDisposition
>         ]
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\Source\WebKit\Platform\IPC\ArgumentCoders.h(165): note: see reference to function template instantiation 'IPC::Encoder &IPC::Encoder::operator <<<const WebKit::AuthenticationChallengeDisposition&,0x0>(T)' being compiled
>         with
>         [
>             T=const WebKit::AuthenticationChallengeDisposition &
>         ]
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\Source\WebKit\Platform\IPC\ArgumentCoders.h(165): note: while compiling class template member function 'void IPC::TupleCoder<2,uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &>::encode(IPC::Encoder &,const std::tuple<uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &> &)'
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\Source\WebKit\Platform\IPC\ArgumentCoders.h(167): note: see reference to function template instantiation 'void IPC::TupleCoder<2,uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &>::encode(IPC::Encoder &,const std::tuple<uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &> &)' being compiled
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\Source\WebKit\Platform\IPC\ArgumentCoders.h(165): note: see reference to class template instantiation 'IPC::TupleCoder<2,uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &>' being compiled
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\Source\WebKit\Platform\IPC\ArgumentCoders.h(165): note: while compiling class template member function 'void IPC::TupleCoder<3,uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &>::encode(IPC::Encoder &,const std::tuple<uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &> &)'
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\Source\WebKit\Platform\IPC\ArgumentCoders.h(205): note: see reference to function template instantiation 'void IPC::TupleCoder<3,uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &>::encode(IPC::Encoder &,const std::tuple<uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &> &)' being compiled
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\Source\WebKit\Platform\IPC\ArgumentCoders.h(204): note: see reference to class template instantiation 'IPC::TupleCoder<3,uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &>' being compiled
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\Source\WebKit\Platform\IPC\ArgumentCoders.h(204): note: while compiling class template member function 'void IPC::ArgumentCoder<std::tuple<uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &>>::encode(IPC::Encoder &,const std::tuple<uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &> &)'
> c:\webkit-buildworker\wincairo-wkl-debug\build\source\webkit\platform\ipc\Encoder.h(71): note: see reference to function template instantiation 'void IPC::ArgumentCoder<std::tuple<uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &>>::encode(IPC::Encoder &,const std::tuple<uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &> &)' being compiled
> c:\webkit-buildworker\wincairo-wkl-debug\build\source\webkit\platform\ipc\Encoder.h(71): note: see reference to class template instantiation 'IPC::ArgumentCoder<std::tuple<uint64_t,WebKit::AuthenticationChallengeDisposition,const WebCore::Credential &>>' being compiled
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\Source\WebKit\Platform\IPC\Connection.h(407): note: see reference to function template instantiation 'void IPC::Encoder::encode<const Messages::AuthenticationManager::CompleteAuthenticationChallenge::Arguments&,0x0>(T)' being compiled
>         with
>         [
>             T=const Messages::AuthenticationManager::CompleteAuthenticationChallenge::Arguments &
>         ]
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\Source\WebKit\UIProcess/Authentication/AuthenticationChallengeProxy.cpp(55): note: see reference to function template instantiation 'bool IPC::Connection::send<Messages::AuthenticationManager::CompleteAuthenticationChallenge>(T &&,uint64_t,WTF::OptionSet<IPC::SendOption>)' being compiled
>         with
>         [
>             T=Messages::AuthenticationManager::CompleteAuthenticationChallenge
>         ]
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\WebKitBuild\Debug\DerivedSources\ForwardingHeaders\wtf/EnumTraits.h(59): error C2146: syntax error: missing '>' before identifier 'values'
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\WebKitBuild\Debug\DerivedSources\ForwardingHeaders\wtf/EnumTraits.h(59): error C2027: use of undefined type 'WTF::EnumValueChecker<T,int>'
>         with
>         [
>             T=uint64_t
>         ]
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\WebKitBuild\Debug\DerivedSources\ForwardingHeaders\wtf/EnumTraits.h(59): note: see declaration of 'WTF::EnumValueChecker<T,int>'
>         with
>         [
>             T=uint64_t
>         ]
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\WebKitBuild\Debug\DerivedSources\ForwardingHeaders\wtf/EnumTraits.h(59): error C2672: 'WTF::isValidEnum': no matching overloaded function found
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\WebKitBuild\Debug\DerivedSources\ForwardingHeaders\wtf/EnumTraits.h(59): error C2783: 'enable_if<_Test,_Ty>::type WTF::isValidEnum(T)': could not deduce template argument for 'E'
>         with
>         [
>             _Ty=bool
>         ]
> C:\WebKit-BuildWorker\wincairo-wkl-debug\build\WebKitBuild\Debug\DerivedSources\ForwardingHeaders\wtf/EnumTraits.h(55): note: see declaration of 'WTF::isValidEnum'
> [5942/6192] Building CXX object Source\WebKit\CMakeFiles\WebKit.dir\__\__\DerivedSources\WebKit\unified-sources\UnifiedSource25.cpp.obj
> c:\webkit-buildworker\wincairo-wkl-debug\build\source\webkit\uiprocess\webpageproxy.cpp(6145) : warning C4701: potentially uninitialized local variable 'error' used
> [5943/6192] Building CXX object Source\WebKit\CMakeFiles\WebKit.dir\__\__\DerivedSources\WebKit\unified-sources\UnifiedSource38.cpp.obj
> [5944/6192] Building CXX object Source\WebKit\CMakeFiles\WebKit.dir\__\__\DerivedSources\WebKit\unified-sources\UnifiedSource36.cpp.obj
> [5945/6192] Building CXX object Source\WebKit\CMakeFiles\WebKit.dir\__\__\DerivedSources\WebKit\unified-sources\UnifiedSource37.cpp.obj
> [5946/6192] Building CXX object Source\WebKit\CMakeFiles\WebKit.dir\__\__\DerivedSources\WebKit\unified-sources\UnifiedSource35.cpp.obj
> [5947/6192] Building CXX object Source\WebKit\CMakeFiles\WebKit.dir\__\__\DerivedSources\WebKit\unified-sources\UnifiedSource33.cpp.obj
> [5948/6192] Building CXX object Source\WebKit\CMakeFiles\WebKit.dir\__\__\DerivedSources\WebKit\unified-sources\UnifiedSource42.cpp.obj
> [5949/6192] Building CXX object Source\WebKit\CMakeFiles\WebKit.dir\__\__\DerivedSources\WebKit\unified-sources\UnifiedSource41.cpp.obj
> [5950/6192] Building CXX object Source\WebKit\CMakeFiles\WebKit.dir\__\__\DerivedSources\WebKit\unified-sources\UnifiedSource39.cpp.obj
> ninja: build stopped: subcommand failed.
> 
> 
> ===== BUILD FAILED ======
Comment 1 Fujii Hironori 2018-09-27 23:37:57 PDT
Bug 189719 seems the culprit.
http://trac.webkit.org/r236344
Comment 2 Fujii Hironori 2018-09-27 23:50:11 PDT
Created attachment 351060 [details]
Patch
Comment 3 Fujii Hironori 2018-09-28 00:08:18 PDT
Comment on attachment 351060 [details]
Patch

Clearing flags on attachment: 351060

Committed r236595: <https://trac.webkit.org/changeset/236595>
Comment 4 Fujii Hironori 2018-09-28 00:08:20 PDT
All reviewed patches have been landed.  Closing bug.
Comment 5 Radar WebKit Bug Importer 2018-09-28 00:09:28 PDT
<rdar://problem/44856594>