Skip to content

Build error on emsdk CI  #6084

@sbc100

Description

@sbc100

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....

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions