Bug 201759 - [Win][Clang 9][MiniBrowser] comip.h(174,16): error: conflicting types for '_com_ptr_t'
Summary: [Win][Clang 9][MiniBrowser] comip.h(174,16): error: conflicting types for '_c...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-09-13 03:49 PDT by Fujii Hironori
Modified: 2020-02-03 23:15 PST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Fujii Hironori 2019-09-13 03:49:04 PDT
I tried LLVM 9.0.0 Release Candidate 4.
https://prereleases.llvm.org/9.0.0/#r4c
It can't compile _com_ptr_t.


[4762/5013] Building CXX object Tools\MiniBrowser\win\CMakeFiles\MiniBrowserLib.dir\AccessibilityDelegate.cpp.obj
FAILED: Tools/MiniBrowser/win/CMakeFiles/MiniBrowserLib.dir/AccessibilityDelegate.cpp.obj 
C:\PROGRA~1\LLVM\bin\clang-cl.exe  /nologo -TP -DANGLE_ENABLE_D3D11 -DANGLE_ENABLE_D3D9 -DANGLE_ENABLE_ESSL -DANGLE_ENABLE_HLSL -DBUILDING_WITH_CMAKE=1 -DEGL_EGLEXT_PROTOTYPES -DEGL_EGL_PROTOTYPES=1 -DENABLE_WEBKIT -DGL_API="" -DGL_APICALL="" -DGL_GLES_PROTOTYPES=1 -DGL_GLEXT_PROTOTYPES -DHAVE_CONFIG_H=1 -DMiniBrowserLib_EXPORTS -DNOMINMAX -DUNICODE -DWINVER=0x601 -DWIN_CAIRO -DWTF_PLATFORM_WIN_CAIRO=1 -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_UNICODE -D_WIN32_WINNT=0x601 -D_WINDOWS -D_WINSOCKAPI_="" -IPAL\Headers -IWebCore\PrivateHeaders -IWebKitLegacy\Headers -IWebKit\Headers -IWebKit\PrivateHeaders -IWTF\Headers -I. -IDerivedSources -I..\..\Source\ThirdParty -IWebKit\DerivedSources -IWebKit\DerivedSources\include -I..\..\Source\WebKit -I..\..\Source\WebKit\NetworkProcess -I..\..\Source\WebKit\NetworkProcess\Classifier -I..\..\Source\WebKit\NetworkProcess\Cookies -I..\..\Source\WebKit\NetworkProcess\CustomProtocols -I..\..\Source\WebKit\NetworkProcess\Downloads -I..\..\Source\WebKit\NetworkProcess\FileAPI -I..\..\Source\WebKit\NetworkProcess\IndexedDB -I..\..\Source\WebKit\NetworkProcess\ServiceWorker -I..\..\Source\WebKit\NetworkProcess\WebStorage -I..\..\Source\WebKit\NetworkProcess\cache -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\ApplePay -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\WebsiteData -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\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\UserContent -I..\..\Source\WebKit\UIProcess\WebAuthentication -I..\..\Source\WebKit\UIProcess\WebAuthentication\Mock -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 -I..\..\Source -I..\..\WebKitLibraries -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\UIProcess\API\C\cairo -I..\..\Source\WebKit\UIProcess\API\C\curl -I..\..\Source\WebKit\UIProcess\API\C\win -I..\..\Source\WebKit\UIProcess\API\cpp\win -I..\..\Source\WebKit\UIProcess\API\win -I..\..\Source\WebKit\UIProcess\CoordinatedGraphics -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\WebKit\NetworkProcess\curl -I..\..\Source\WebKit\WebProcess\WebCoreSupport\curl -I..\..\Source\WebKit\UIProcess\socket -IDerivedSources\ForwardingHeaders -I..\include\private -IJavaScriptCore\Headers -IJavaScriptCore\PrivateHeaders -IANGLE\Headers -I..\..\WebKitLibraries\win\include -I..\..\WebKitLibraries\win\include\cairo /W4 -fdiagnostics-color=always -fcolor-diagnostics -Wno-parentheses-equality -Wno-noexcept-type -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 /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 /utf-8 /validate-charset -fmsc-version=1911 -std:c++17 /showIncludes /FoTools\MiniBrowser\win\CMakeFiles\MiniBrowserLib.dir\AccessibilityDelegate.cpp.obj /FdTools\MiniBrowser\win\CMakeFiles\MiniBrowserLib.dir\ -c ..\..\Tools\MiniBrowser\win\AccessibilityDelegate.cpp
In file included from ..\..\Tools\MiniBrowser\win\AccessibilityDelegate.cpp:26:
In file included from ..\..\Tools\MiniBrowser\win/stdafx.h:45:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): error: conflicting types for '_com_ptr_t'
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
..\..\Tools\MiniBrowser\win/WebKitLegacyBrowserWindow.h(121,17): note: in instantiation of template class '_com_ptr_t<_com_IIID<IWebView, &__uuidof(IWebView)> >' requested here
    IWebViewPtr m_webView;
                ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): note: previous declaration is here
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(269,28): error: conflicting types for 'operator='
    template<> _com_ptr_t& operator=(Interface* pInterface) throw()
                           ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(269,28): note: previous declaration is here
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(469,21): error: conflicting types for 'operator=='
    template<> bool operator==(const _com_ptr_t& p) const throw()
                    ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(469,21): note: previous declaration is here
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): error: conflicting types for '_com_ptr_t'
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
..\..\Tools\MiniBrowser\win/WebKitLegacyBrowserWindow.h(122,24): note: in instantiation of template class '_com_ptr_t<_com_IIID<IWebViewPrivate2, &__uuidof(IWebViewPrivate2)> >' requested here
    IWebViewPrivatePtr m_webViewPrivate;
                       ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): note: previous declaration is here
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(269,28): error: conflicting types for 'operator='
    template<> _com_ptr_t& operator=(Interface* pInterface) throw()
                           ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(269,28): note: previous declaration is here
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(469,21): error: conflicting types for 'operator=='
    template<> bool operator==(const _com_ptr_t& p) const throw()
                    ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(469,21): note: previous declaration is here
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): error: conflicting types for '_com_ptr_t'
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
..\..\Tools\MiniBrowser\win/WebKitLegacyBrowserWindow.h(124,20): note: in instantiation of template class '_com_ptr_t<_com_IIID<IWebHistory, &__uuidof(IWebHistory)> >' requested here
    IWebHistoryPtr m_webHistory;
                   ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): note: previous declaration is here
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(269,28): error: conflicting types for 'operator='
    template<> _com_ptr_t& operator=(Interface* pInterface) throw()
                           ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(269,28): note: previous declaration is here
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(469,21): error: conflicting types for 'operator=='
    template<> bool operator==(const _com_ptr_t& p) const throw()
                    ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(469,21): note: previous declaration is here
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): error: conflicting types for '_com_ptr_t'
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
..\..\Tools\MiniBrowser\win/WebKitLegacyBrowserWindow.h(125,22): note: in instantiation of template class '_com_ptr_t<_com_IIID<IWebInspector, &__uuidof(IWebInspector)> >' requested here
    IWebInspectorPtr m_inspector;
                     ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): note: previous declaration is here
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(269,28): error: conflicting types for 'operator='
    template<> _com_ptr_t& operator=(Interface* pInterface) throw()
                           ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(269,28): note: previous declaration is here
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(469,21): error: conflicting types for 'operator=='
    template<> bool operator==(const _com_ptr_t& p) const throw()
                    ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(469,21): note: previous declaration is here
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): error: conflicting types for '_com_ptr_t'
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
..\..\Tools\MiniBrowser\win/WebKitLegacyBrowserWindow.h(126,24): note: in instantiation of template class '_com_ptr_t<_com_IIID<IWebPreferences, &__uuidof(IWebPreferences)> >' requested here
    IWebPreferencesPtr m_standardPreferences;
                       ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): note: previous declaration is here
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(269,28): error: conflicting types for 'operator='
    template<> _com_ptr_t& operator=(Interface* pInterface) throw()
                           ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(269,28): note: previous declaration is here
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(469,21): error: conflicting types for 'operator=='
    template<> bool operator==(const _com_ptr_t& p) const throw()
                    ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(469,21): note: previous declaration is here
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): error: conflicting types for '_com_ptr_t'
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
..\..\Tools\MiniBrowser\win/WebKitLegacyBrowserWindow.h(127,31): note: in instantiation of template class '_com_ptr_t<_com_IIID<IWebPreferencesPrivate3, &__uuidof(IWebPreferencesPrivate3)> >' requested here
    IWebPreferencesPrivatePtr m_prefsPrivate;
                              ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): note: previous declaration is here
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(269,28): error: conflicting types for 'operator='
    template<> _com_ptr_t& operator=(Interface* pInterface) throw()
                           ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(269,28): note: previous declaration is here
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(469,21): error: conflicting types for 'operator=='
    template<> bool operator==(const _com_ptr_t& p) const throw()
                    ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(469,21): note: previous declaration is here
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): error: conflicting types for '_com_ptr_t'
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
..\..\Tools\MiniBrowser\win/WebKitLegacyBrowserWindow.h(128,31): note: in instantiation of template class '_com_ptr_t<_com_IIID<IWebNotificationCenter, &__uuidof(IWebNotificationCenter)> >' requested here
    IWebNotificationCenterPtr m_defaultNotificationCenter;
                              ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\include\comip.h(174,16): note: previous declaration is here
    template<> _com_ptr_t(Interface* pInterface) throw()
               ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
Comment 1 Fujii Hironori 2019-09-13 03:49:32 PDT
LLVM bug ticket:

Bug 42842 – Generated COM code fails to compile with 9.0.0-RC1
https://bugs.llvm.org/show_bug.cgi?id=42842
Comment 2 Fujii Hironori 2020-02-03 23:15:45 PST
Fixed in LLVM-9.0.1-win64.exe
https://github.com/llvm/llvm-project/releases/tag/llvmorg-9.0.1