binaryen
binaryen copied to clipboard
Build error on emsdk CI
https://app.circleci.com/pipelines/github/emscripten-core/emsdk/2084/workflows/2e280ca8-1c22-435f-b602-58142371adba/jobs/12495
Some kind of issue with std::variant:
[ 95%] Building CXX object src/tools/CMakeFiles/wasm-opt.dir/wasm-opt.cpp.o
In file included from /root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:21:0:
/usr/include/c++/7/variant: In instantiation of 'constexpr const size_t std::variant_size_v<wasm::RandomFullLattice::L>':
/usr/include/c++/7/variant:702:10: required from 'struct std::__detail::__variant::__gen_vtable<wasm::RandomFullLattice::ElementImpl, wasm::RandomFullLattice::getBottom() const::<lambda(const auto:5&)>&&, wasm::RandomFullLattice::L&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomFullLattice::getBottom() const::<lambda(const auto:5&)>; _Variants = {wasm::RandomFullLattice::L&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:866:29: required from here
/usr/include/c++/7/variant:97:29: error: incomplete type 'std::variant_size<wasm::RandomFullLattice::L>' used in nested name specifier
inline constexpr size_t variant_size_v = variant_size<_Variant>::value;
^~~~~~~~~~~~~~
/usr/include/c++/7/variant: In instantiation of 'constexpr const auto std::__detail::__variant::__gen_vtable<wasm::RandomFullLattice::ElementImpl, wasm::RandomFullLattice::getBottom() const::<lambda(const auto:5&)>&&, wasm::RandomFullLattice::L&>::_S_vtable':
/usr/include/c++/7/variant:711:29: required from 'struct std::__detail::__variant::__gen_vtable<wasm::RandomFullLattice::ElementImpl, wasm::RandomFullLattice::getBottom() const::<lambda(const auto:5&)>&&, wasm::RandomFullLattice::L&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomFullLattice::getBottom() const::<lambda(const auto:5&)>; _Variants = {wasm::RandomFullLattice::L&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:866:29: required from here
/usr/include/c++/7/variant:711:49: error: '_S_apply' was not declared in this scope
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
/usr/include/c++/7/variant:711:49: note: suggested alternative: '__expl'
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
__expl
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp: In member function 'wasm::RandomFullLattice::Element wasm::RandomFullLattice::getBottom() const':
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:865:20: error: could not convert 'std::visit<wasm::RandomFullLattice::getBottom() const::<lambda(const auto:5&)>, wasm::RandomFullLattice::L&>(<lambda closure object>wasm::RandomFullLattice::getBottom() const::<lambda(const auto:5&)>{}, (* &((const wasm::RandomFullLattice*)this)->wasm::RandomFullLattice::lattice.std::unique_ptr<wasm::RandomFullLattice::L>::operator*()))' from 'void' to 'wasm::RandomFullLattice::Element {aka wasm::RandomElement<wasm::RandomFullLattice>}'
return std::visit([](const auto& l) { return ElementImpl{l.getBottom()}; },
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*lattice);
~~~~~~~~~
In file included from /root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:21:0:
/usr/include/c++/7/variant: In instantiation of 'constexpr const auto std::__detail::__variant::__gen_vtable<wasm::RandomFullLattice::ElementImpl, wasm::RandomFullLattice::getTop() const::<lambda(const auto:6&)>&&, wasm::RandomFullLattice::L&>::_S_vtable':
/usr/include/c++/7/variant:711:29: required from 'struct std::__detail::__variant::__gen_vtable<wasm::RandomFullLattice::ElementImpl, wasm::RandomFullLattice::getTop() const::<lambda(const auto:6&)>&&, wasm::RandomFullLattice::L&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomFullLattice::getTop() const::<lambda(const auto:6&)>; _Variants = {wasm::RandomFullLattice::L&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:871:29: required from here
/usr/include/c++/7/variant:711:49: error: '_S_apply' was not declared in this scope
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
/usr/include/c++/7/variant:711:49: note: suggested alternative: '__expl'
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
__expl
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp: In member function 'wasm::RandomFullLattice::Element wasm::RandomFullLattice::getTop() const':
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:870:20: error: could not convert 'std::visit<wasm::RandomFullLattice::getTop() const::<lambda(const auto:6&)>, wasm::RandomFullLattice::L&>(<lambda closure object>wasm::RandomFullLattice::getTop() const::<lambda(const auto:6&)>{}, (* &((const wasm::RandomFullLattice*)this)->wasm::RandomFullLattice::lattice.std::unique_ptr<wasm::RandomFullLattice::L>::operator*()))' from 'void' to 'wasm::RandomFullLattice::Element {aka wasm::RandomElement<wasm::RandomFullLattice>}'
return std::visit([](const auto& l) { return ElementImpl{l.getTop()}; },
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*lattice);
~~~~~~~~~
In file included from /root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:21:0:
/usr/include/c++/7/variant: In instantiation of 'struct std::variant_size<const wasm::RandomFullLattice::ElementImpl>':
/usr/include/c++/7/variant:97:29: required from 'constexpr const size_t std::variant_size_v<const wasm::RandomFullLattice::ElementImpl>'
/usr/include/c++/7/variant:702:10: required from 'struct std::__detail::__variant::__gen_vtable<wasm::analysis::LatticeComparison, wasm::RandomFullLattice::compare(const Element&, const Element&) const::<lambda(const auto:7&, const auto:8&, const auto:9&)>&&, wasm::RandomFullLattice::L&, const wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomFullLattice::compare(const Element&, const Element&) const::<lambda(const auto:7&, const auto:8&, const auto:9&)>; _Variants = {wasm::RandomFullLattice::L&, const wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:893:7: required from here
/usr/include/c++/7/variant:84:12: error: invalid use of incomplete type 'struct std::variant_size<wasm::RandomFullLattice::ElementImpl>'
struct variant_size<const _Variant> : variant_size<_Variant> {};
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/variant:81:12: note: declaration of 'struct std::variant_size<wasm::RandomFullLattice::ElementImpl>'
struct variant_size;
^~~~~~~~~~~~
/usr/include/c++/7/variant: In instantiation of 'constexpr const size_t std::variant_size_v<const wasm::RandomFullLattice::ElementImpl>':
/usr/include/c++/7/variant:702:10: required from 'struct std::__detail::__variant::__gen_vtable<wasm::analysis::LatticeComparison, wasm::RandomFullLattice::compare(const Element&, const Element&) const::<lambda(const auto:7&, const auto:8&, const auto:9&)>&&, wasm::RandomFullLattice::L&, const wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomFullLattice::compare(const Element&, const Element&) const::<lambda(const auto:7&, const auto:8&, const auto:9&)>; _Variants = {wasm::RandomFullLattice::L&, const wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:893:7: required from here
/usr/include/c++/7/variant:97:29: error: 'value' is not a member of 'std::variant_size<const wasm::RandomFullLattice::ElementImpl>'
inline constexpr size_t variant_size_v = variant_size<_Variant>::value;
^~~~~~~~~~~~~~
/usr/include/c++/7/variant: In instantiation of 'constexpr const auto std::__detail::__variant::__gen_vtable<wasm::analysis::LatticeComparison, wasm::RandomFullLattice::compare(const Element&, const Element&) const::<lambda(const auto:7&, const auto:8&, const auto:9&)>&&, wasm::RandomFullLattice::L&, const wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&>::_S_vtable':
/usr/include/c++/7/variant:711:29: required from 'struct std::__detail::__variant::__gen_vtable<wasm::analysis::LatticeComparison, wasm::RandomFullLattice::compare(const Element&, const Element&) const::<lambda(const auto:7&, const auto:8&, const auto:9&)>&&, wasm::RandomFullLattice::L&, const wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomFullLattice::compare(const Element&, const Element&) const::<lambda(const auto:7&, const auto:8&, const auto:9&)>; _Variants = {wasm::RandomFullLattice::L&, const wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:893:7: required from here
/usr/include/c++/7/variant:711:49: error: '_S_apply' was not declared in this scope
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
/usr/include/c++/7/variant:711:49: note: suggested alternative: '__expl'
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
__expl
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp: In member function 'wasm::analysis::LatticeComparison wasm::RandomFullLattice::compare(const Element&, const Element&) const':
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:893:7: error: void value not ignored as it ought to be
*b);
^
In file included from /root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:21:0:
/usr/include/c++/7/variant: In instantiation of 'constexpr const size_t std::variant_size_v<wasm::RandomFullLattice::ElementImpl>':
/usr/include/c++/7/variant:702:10: required from 'struct std::__detail::__variant::__gen_vtable<bool, wasm::RandomFullLattice::join(wasm::RandomFullLattice::Element&, const Element&) const::<lambda(const auto:10&, auto:11&, const auto:12&)>&&, wasm::RandomFullLattice::L&, wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomFullLattice::join(wasm::RandomFullLattice::Element&, const Element&) const::<lambda(const auto:10&, auto:11&, const auto:12&)>; _Variants = {wasm::RandomFullLattice::L&, wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:909:7: required from here
/usr/include/c++/7/variant:97:29: error: incomplete type 'std::variant_size<wasm::RandomFullLattice::ElementImpl>' used in nested name specifier
inline constexpr size_t variant_size_v = variant_size<_Variant>::value;
^~~~~~~~~~~~~~
/usr/include/c++/7/variant: In instantiation of 'constexpr const auto std::__detail::__variant::__gen_vtable<bool, wasm::RandomFullLattice::join(wasm::RandomFullLattice::Element&, const Element&) const::<lambda(const auto:10&, auto:11&, const auto:12&)>&&, wasm::RandomFullLattice::L&, wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&>::_S_vtable':
/usr/include/c++/7/variant:711:29: required from 'struct std::__detail::__variant::__gen_vtable<bool, wasm::RandomFullLattice::join(wasm::RandomFullLattice::Element&, const Element&) const::<lambda(const auto:10&, auto:11&, const auto:12&)>&&, wasm::RandomFullLattice::L&, wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomFullLattice::join(wasm::RandomFullLattice::Element&, const Element&) const::<lambda(const auto:10&, auto:11&, const auto:12&)>; _Variants = {wasm::RandomFullLattice::L&, wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:909:7: required from here
/usr/include/c++/7/variant:711:49: error: '_S_apply' was not declared in this scope
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
/usr/include/c++/7/variant:711:49: note: suggested alternative: '__expl'
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
__expl
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp: In member function 'bool wasm::RandomFullLattice::join(wasm::RandomFullLattice::Element&, const Element&) const':
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:909:7: error: void value not ignored as it ought to be
*b);
^
In file included from /root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:21:0:
/usr/include/c++/7/variant: In instantiation of 'constexpr const auto std::__detail::__variant::__gen_vtable<bool, wasm::RandomFullLattice::meet(wasm::RandomFullLattice::Element&, const Element&) const::<lambda(const auto:13&, auto:14&, const auto:15&)>&&, wasm::RandomFullLattice::L&, wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&>::_S_vtable':
/usr/include/c++/7/variant:711:29: required from 'struct std::__detail::__variant::__gen_vtable<bool, wasm::RandomFullLattice::meet(wasm::RandomFullLattice::Element&, const Element&) const::<lambda(const auto:13&, auto:14&, const auto:15&)>&&, wasm::RandomFullLattice::L&, wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomFullLattice::meet(wasm::RandomFullLattice::Element&, const Element&) const::<lambda(const auto:13&, auto:14&, const auto:15&)>; _Variants = {wasm::RandomFullLattice::L&, wasm::RandomFullLattice::ElementImpl&, const wasm::RandomFullLattice::ElementImpl&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:925:7: required from here
/usr/include/c++/7/variant:711:49: error: '_S_apply' was not declared in this scope
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
/usr/include/c++/7/variant:711:49: note: suggested alternative: '__expl'
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
__expl
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp: In member function 'bool wasm::RandomFullLattice::meet(wasm::RandomFullLattice::Element&, const Element&) const':
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:925:7: error: void value not ignored as it ought to be
*b);
^
In file included from /root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:21:0:
/usr/include/c++/7/variant: In instantiation of 'constexpr const size_t std::variant_size_v<wasm::RandomLattice::L>':
/usr/include/c++/7/variant:702:10: required from 'struct std::__detail::__variant::__gen_vtable<wasm::RandomLattice::ElementImpl, wasm::RandomLattice::getBottom() const::<lambda(const auto:16&)>&&, wasm::RandomLattice::L&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomLattice::getBottom() const::<lambda(const auto:16&)>; _Variants = {wasm::RandomLattice::L&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:930:29: required from here
/usr/include/c++/7/variant:97:29: error: incomplete type 'std::variant_size<wasm::RandomLattice::L>' used in nested name specifier
inline constexpr size_t variant_size_v = variant_size<_Variant>::value;
^~~~~~~~~~~~~~
/usr/include/c++/7/variant: In instantiation of 'constexpr const auto std::__detail::__variant::__gen_vtable<wasm::RandomLattice::ElementImpl, wasm::RandomLattice::getBottom() const::<lambda(const auto:16&)>&&, wasm::RandomLattice::L&>::_S_vtable':
/usr/include/c++/7/variant:711:29: required from 'struct std::__detail::__variant::__gen_vtable<wasm::RandomLattice::ElementImpl, wasm::RandomLattice::getBottom() const::<lambda(const auto:16&)>&&, wasm::RandomLattice::L&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomLattice::getBottom() const::<lambda(const auto:16&)>; _Variants = {wasm::RandomLattice::L&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:930:29: required from here
/usr/include/c++/7/variant:711:49: error: '_S_apply' was not declared in this scope
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
/usr/include/c++/7/variant:711:49: note: suggested alternative: '__expl'
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
__expl
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp: In member function 'wasm::RandomLattice::Element wasm::RandomLattice::getBottom() const':
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:929:20: error: could not convert 'std::visit<wasm::RandomLattice::getBottom() const::<lambda(const auto:16&)>, wasm::RandomLattice::L&>(<lambda closure object>wasm::RandomLattice::getBottom() const::<lambda(const auto:16&)>{}, (* &((const wasm::RandomLattice*)this)->wasm::RandomLattice::lattice.std::unique_ptr<wasm::RandomLattice::L>::operator*()))' from 'void' to 'wasm::RandomLattice::Element {aka wasm::RandomElement<wasm::RandomLattice>}'
return std::visit([](const auto& l) { return ElementImpl{l.getBottom()}; },
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*lattice);
~~~~~~~~~
In file included from /root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:21:0:
/usr/include/c++/7/variant: In instantiation of 'struct std::variant_size<const wasm::RandomLattice::ElementImpl>':
/usr/include/c++/7/variant:97:29: required from 'constexpr const size_t std::variant_size_v<const wasm::RandomLattice::ElementImpl>'
/usr/include/c++/7/variant:702:10: required from 'struct std::__detail::__variant::__gen_vtable<wasm::analysis::LatticeComparison, wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:17&, const auto:18&, const auto:19&)>&&, wasm::RandomLattice::L&, const wasm::RandomLattice::ElementImpl&, const wasm::RandomLattice::ElementImpl&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:17&, const auto:18&, const auto:19&)>; _Variants = {wasm::RandomLattice::L&, const wasm::RandomLattice::ElementImpl&, const wasm::RandomLattice::ElementImpl&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:949:7: required from here
/usr/include/c++/7/variant:84:12: error: invalid use of incomplete type 'struct std::variant_size<wasm::RandomLattice::ElementImpl>'
struct variant_size<const _Variant> : variant_size<_Variant> {};
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/variant:81:12: note: declaration of 'struct std::variant_size<wasm::RandomLattice::ElementImpl>'
struct variant_size;
^~~~~~~~~~~~
/usr/include/c++/7/variant: In instantiation of 'constexpr const size_t std::variant_size_v<const wasm::RandomLattice::ElementImpl>':
/usr/include/c++/7/variant:702:10: required from 'struct std::__detail::__variant::__gen_vtable<wasm::analysis::LatticeComparison, wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:17&, const auto:18&, const auto:19&)>&&, wasm::RandomLattice::L&, const wasm::RandomLattice::ElementImpl&, const wasm::RandomLattice::ElementImpl&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:17&, const auto:18&, const auto:19&)>; _Variants = {wasm::RandomLattice::L&, const wasm::RandomLattice::ElementImpl&, const wasm::RandomLattice::ElementImpl&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:949:7: required from here
/usr/include/c++/7/variant:97:29: error: 'value' is not a member of 'std::variant_size<const wasm::RandomLattice::ElementImpl>'
inline constexpr size_t variant_size_v = variant_size<_Variant>::value;
^~~~~~~~~~~~~~
/usr/include/c++/7/variant: In instantiation of 'constexpr const auto std::__detail::__variant::__gen_vtable<wasm::analysis::LatticeComparison, wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:17&, const auto:18&, const auto:19&)>&&, wasm::RandomLattice::L&, const wasm::RandomLattice::ElementImpl&, const wasm::RandomLattice::ElementImpl&>::_S_vtable':
/usr/include/c++/7/variant:711:29: required from 'struct std::__detail::__variant::__gen_vtable<wasm::analysis::LatticeComparison, wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:17&, const auto:18&, const auto:19&)>&&, wasm::RandomLattice::L&, const wasm::RandomLattice::ElementImpl&, const wasm::RandomLattice::ElementImpl&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:17&, const auto:18&, const auto:19&)>; _Variants = {wasm::RandomLattice::L&, const wasm::RandomLattice::ElementImpl&, const wasm::RandomLattice::ElementImpl&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:949:7: required from here
/usr/include/c++/7/variant:711:49: error: '_S_apply' was not declared in this scope
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
/usr/include/c++/7/variant:711:49: note: suggested alternative: '__expl'
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
__expl
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp: In member function 'wasm::analysis::LatticeComparison wasm::RandomLattice::compare(const Element&, const Element&) const':
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:949:7: error: void value not ignored as it ought to be
*b);
^
In file included from /root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:21:0:
/usr/include/c++/7/variant: In instantiation of 'constexpr const size_t std::variant_size_v<wasm::RandomLattice::ElementImpl>':
/usr/include/c++/7/variant:702:10: required from 'struct std::__detail::__variant::__gen_vtable<bool, wasm::RandomLattice::join(wasm::RandomLattice::Element&, const Element&) const::<lambda(const auto:20&, auto:21&, const auto:22&)>&&, wasm::RandomLattice::L&, wasm::RandomLattice::ElementImpl&, const wasm::RandomLattice::ElementImpl&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomLattice::join(wasm::RandomLattice::Element&, const Element&) const::<lambda(const auto:20&, auto:21&, const auto:22&)>; _Variants = {wasm::RandomLattice::L&, wasm::RandomLattice::ElementImpl&, const wasm::RandomLattice::ElementImpl&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:965:7: required from here
/usr/include/c++/7/variant:97:29: error: incomplete type 'std::variant_size<wasm::RandomLattice::ElementImpl>' used in nested name specifier
inline constexpr size_t variant_size_v = variant_size<_Variant>::value;
^~~~~~~~~~~~~~
/usr/include/c++/7/variant: In instantiation of 'constexpr const auto std::__detail::__variant::__gen_vtable<bool, wasm::RandomLattice::join(wasm::RandomLattice::Element&, const Element&) const::<lambda(const auto:20&, auto:21&, const auto:22&)>&&, wasm::RandomLattice::L&, wasm::RandomLattice::ElementImpl&, const wasm::RandomLattice::ElementImpl&>::_S_vtable':
/usr/include/c++/7/variant:711:29: required from 'struct std::__detail::__variant::__gen_vtable<bool, wasm::RandomLattice::join(wasm::RandomLattice::Element&, const Element&) const::<lambda(const auto:20&, auto:21&, const auto:22&)>&&, wasm::RandomLattice::L&, wasm::RandomLattice::ElementImpl&, const wasm::RandomLattice::ElementImpl&>'
/usr/include/c++/7/variant:1255:23: required from 'constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomLattice::join(wasm::RandomLattice::Element&, const Element&) const::<lambda(const auto:20&, auto:21&, const auto:22&)>; _Variants = {wasm::RandomLattice::L&, wasm::RandomLattice::ElementImpl&, const wasm::RandomLattice::ElementImpl&}]'
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:965:7: required from here
/usr/include/c++/7/variant:711:49: error: '_S_apply' was not declared in this scope
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
/usr/include/c++/7/variant:711:49: note: suggested alternative: '__expl'
static constexpr auto _S_vtable = _S_apply();
~~~~~~~~^~
__expl
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp: In member function 'bool wasm::RandomLattice::join(wasm::RandomLattice::Element&, const Element&) const':
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:965:7: error: void value not ignored as it ought to be
*b);
^
[ 96%] Linking CXX executable ../../../bin/wasm-split
[ 96%] Built target wasm-split
[ 96%] Building CXX object test/gtest/CMakeFiles/binaryen-unittests.dir/dfa_minimization.cpp.o
At global scope:
cc1plus: warning: unrecognized command line option '-Wno-unknown-warning-option'
cc1plus: warning: unrecognized command line option '-Wno-implicit-int-float-conversion'
cc1plus: warning: unrecognized command line option '-Wno-dangling-pointer'
src/tools/CMakeFiles/wasm-fuzz-lattices.dir/build.make:134: recipe for target 'src/tools/CMakeFiles/wasm-fuzz-lattices.dir/wasm-fuzz-lattices.cpp.o' failed
make[2]: *** [src/tools/CMakeFiles/wasm-fuzz-lattices.dir/wasm-fuzz-lattices.cpp.o] Error 1
CMakeFiles/Makefile2:1020: recipe for target 'src/tools/CMakeFiles/wasm-fuzz-lattices.dir/all' failed
make[1]: *** [src/tools/CMakeFiles/wasm-fuzz-lattices.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
We should try to have binaryen CI running on the same linux version to catch these before they land. The build machine in question is running Ubuntu/Bionic
This failure was also reported by our arm64 SDK builder.
The arm64 builder is using:
Ubuntu 20.04 (Focal) libstdc++-9-dev:9.4.0-1ubuntu1~20.04.2 clang-10.0.0-4ubuntu1
Look, like this same error was noticed in #1295 as well.
This is fixed by https://github.com/WebAssembly/binaryen/pull/6085