Compile error from v8 |
|||||||
Issue descriptionThis CL: https://codereview.chromium.org/2042633002 seems to caused compile error here: https://build.chromium.org/p/chromium/builders/Win/builds/44180
,
Jun 9 2016
,
Jun 9 2016
Looks like the const brush missed a spot and upset MSVC. Attempted fix coming shortly. FAILED: obj/v8/test/cctest/cctest/source-position-matcher.obj ninja -t msvc -e environment.x86 -- C:\b\build\slave\cache\cipd\goma/gomacc.exe "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86/cl.exe" /nologo /showIncludes /FC @obj/v8/test/cctest/cctest/source-position-matcher.obj.rsp /c ../../v8/test/cctest/interpreter/source-position-matcher.cc /Foobj/v8/test/cctest/cctest/source-position-matcher.obj /Fd"obj/v8/test/cctest/cctest_cc.pdb" c:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\vc\include\xtree(2077): error C3848: expression having type 'const v8::internal::interpreter::PositionTableEntryComparer' would lose some const-volatile qualifiers in order to call 'bool v8::internal::interpreter::PositionTableEntryComparer::operator ()(const v8::internal::interpreter::PositionTableEntry &,const v8::internal::interpreter::PositionTableEntry &)' c:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\vc\include\xtree(2076): note: while compiling class template member function 'bool std::_Tree<std::_Tset_traits<_Kty,_Pr,_Alloc,false>>::_Compare(const v8::internal::interpreter::PositionTableEntry &,const v8::internal::interpreter::PositionTableEntry &) const' with [ _Kty=v8::internal::interpreter::PositionTableEntry, _Pr=v8::internal::interpreter::PositionTableEntryComparer, _Alloc=std::allocator<v8::internal::interpreter::PositionTableEntry> ] c:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\vc\include\xtree(2094): note: see reference to function template instantiation 'bool std::_Tree<std::_Tset_traits<_Kty,_Pr,_Alloc,false>>::_Compare(const v8::internal::interpreter::PositionTableEntry &,const v8::internal::interpreter::PositionTableEntry &) const' being compiled with [ _Kty=v8::internal::interpreter::PositionTableEntry, _Pr=v8::internal::interpreter::PositionTableEntryComparer, _Alloc=std::allocator<v8::internal::interpreter::PositionTableEntry> ] c:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\vc\include\set(44): note: see reference to class template instantiation 'std::_Tree<std::_Tset_traits<_Kty,_Pr,_Alloc,false>>' being compiled with [ _Kty=v8::internal::interpreter::PositionTableEntry, _Pr=v8::internal::interpreter::PositionTableEntryComparer, _Alloc=std::allocator<v8::internal::interpreter::PositionTableEntry> ] c:\b\build\slave\win\build\src\v8\test\cctest\interpreter\source-position-matcher.cc(128): note: see reference to class template instantiation 'std::set<v8::internal::interpreter::PositionTableEntry,v8::internal::interpreter::PositionTableEntryComparer,std::allocator<_Ty>>' being compiled with [ _Ty=v8::internal::interpreter::PositionTableEntry ]
,
Jun 9 2016
Blocking roll so this is clearly not nice to have :-).
,
Jun 9 2016
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/af10c45ef25dce86936e34138fcad30b0dc1464b commit af10c45ef25dce86936e34138fcad30b0dc1464b Author: oth <oth@chromium.org> Date: Thu Jun 09 19:11:23 2016 [interpreter] Compilation fix in bytecode source position tester. TBR=rmcilroy@chromium.org BUG= chromium:618757 LOG=N Review-Url: https://codereview.chromium.org/2052993002 Cr-Commit-Position: refs/heads/master@{#36875} [modify] https://crrev.com/af10c45ef25dce86936e34138fcad30b0dc1464b/test/cctest/interpreter/source-position-matcher.cc
,
Jun 9 2016
,
Jun 9 2016
CC some win experts. Do you know which compiler option we have missed in our configs to not have caught this already in v8? Or is this an MSVS 2015 thing?
,
Jun 9 2016
VS 2015 is definitely fussier about const. Technically I think it's VS 2015's implementation of STL that is fussier about const. I had to add (and sometimes remove) const from about a dozen places while porting Chrome to VS 2015. All of the problems were incorrect code that was not detected by gcc, clang, or VS 2013. Comparison operators used by STL algorithms were one of the places where missing const is now caught, so yes, this seems to make sense. Other than moving v8 to VS 2015 there is no practical way to catch this earlier.
,
Jun 10 2016
Thanks, I'll mark it as blocked by the msvs switch, though it is not formally blocked. Just want to make the connection somehow. This should be fixed as a v8-side fix is in and rolled into chromium.
,
Jun 10 2016
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by xidac...@chromium.org
, Jun 9 2016