-
Notifications
You must be signed in to change notification settings - Fork 829
Closed
Description
I'm not quite sure when it started failing but I think fairly recently: https://app.circleci.com/pipelines/github/emscripten-core/emsdk/2730/workflows/a28eaa2f-78f0-4824-b261-0785dacc167f/jobs/18653?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-checks-link&utm_content=summary
In file included from /root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:21:
/usr/include/c++/9/variant: In instantiation of ‘struct std::variant_size<const wasm::analysis::Flat<unsigned int>::Element>’:
/usr/include/c++/9/variant:94:29: required from ‘constexpr const size_t std::variant_size_v<const wasm::analysis::Flat<unsigned int>::Element>’
/usr/include/c++/9/variant:1023:10: required from ‘struct std::__detail::__variant::__gen_vtable<true, bool, wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]::<lambda(const auto:22&, const auto:23&)>&&, const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&>’
/usr/include/c++/9/variant:1647:23: required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with bool __use_index = false; bool __same_return_types = true; _Visitor = wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]::<lambda(const auto:22&, const auto:23&)>; _Variants = {const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&}]’
/usr/include/c++/9/variant:1663:24: required from ‘constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]::<lambda(const auto:22&, const auto:23&)>; _Variants = {const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&}]’
/root/project/binaryen/main/src/analysis/lattices/flat.h:71:24: required from ‘bool wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]’
/root/project/binaryen/main/src/analysis/lattices/flat.h:93:11: [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/9/variant:1014:28: required from ‘static constexpr auto std::__detail::__variant::__gen_vtable_impl<__same_return_types, std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...)>, std::tuple<_Variants ...>, std::integer_sequence<long unsigned int, __indices ...> >::_S_apply() [with bool __same_return_types = true; _Result_type = wasm::analysis::LatticeComparison; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}; long unsigned int ...__indices = {1, 1, 1}]’
/usr/include/c++/9/variant:909:48: recursively required from ‘static constexpr void std::__detail::__variant::__gen_vtable_impl<__same_return_types, std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...), __dimensions ...>, std::tuple<_Variants ...>, std::integer_sequence<long unsigned int, __indices ...> >::_S_apply_single_alt(_Tp&, _Tp*) [with bool __do_cookie = false; long unsigned int __index = 1; _Tp = std::__detail::__variant::_Multi_array<wasm::analysis::LatticeComparison (*)(wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&, const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&), 7, 7>; bool __same_return_types = true; _Result_type = wasm::analysis::LatticeComparison; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&; long unsigned int ...__dimensions = {7, 7, 7}; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}; long unsigned int ...__indices = {}]’
/usr/include/c++/9/variant:909:48: required from ‘constexpr const _Array_type std::__detail::__variant::__gen_vtable<true, wasm::analysis::LatticeComparison, wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&, const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&>::_S_vtable’
/usr/include/c++/9/variant:1647:23: required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with bool __use_index = false; bool __same_return_types = true; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}]’
/usr/include/c++/9/variant:1663:24: required from ‘constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}]’
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:964:37: required from here
/usr/include/c++/9/variant:81:12: error: invalid use of incomplete type ‘struct std::variant_size<wasm::analysis::Flat<unsigned int>::Element>’
81 | struct variant_size<const _Variant> : variant_size<_Variant> {};
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/variant:78:12: note: declaration of ‘struct std::variant_size<wasm::analysis::Flat<unsigned int>::Element>’
78 | struct variant_size;
| ^~~~~~~~~~~~
/usr/include/c++/9/variant: In instantiation of ‘constexpr const size_t std::variant_size_v<const wasm::analysis::Flat<unsigned int>::Element>’:
/usr/include/c++/9/variant:1023:10: required from ‘struct std::__detail::__variant::__gen_vtable<true, bool, wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]::<lambda(const auto:22&, const auto:23&)>&&, const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&>’
/usr/include/c++/9/variant:1647:23: required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with bool __use_index = false; bool __same_return_types = true; _Visitor = wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]::<lambda(const auto:22&, const auto:23&)>; _Variants = {const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&}]’
/usr/include/c++/9/variant:1663:24: required from ‘constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]::<lambda(const auto:22&, const auto:23&)>; _Variants = {const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&}]’
/root/project/binaryen/main/src/analysis/lattices/flat.h:71:24: required from ‘bool wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]’
/root/project/binaryen/main/src/analysis/lattices/flat.h:93:11: required from ‘wasm::analysis::LatticeComparison wasm::analysis::Flat<T, Ts>::compare(const wasm::analysis::Flat<T, Ts>::Element&, const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]’
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:958:38: [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/9/variant:1014:28: required from ‘static constexpr auto std::__detail::__variant::__gen_vtable_impl<__same_return_types, std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...)>, std::tuple<_Variants ...>, std::integer_sequence<long unsigned int, __indices ...> >::_S_apply() [with bool __same_return_types = true; _Result_type = wasm::analysis::LatticeComparison; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}; long unsigned int ...__indices = {1, 1, 1}]’
/usr/include/c++/9/variant:909:48: recursively required from ‘static constexpr void std::__detail::__variant::__gen_vtable_impl<__same_return_types, std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...), __dimensions ...>, std::tuple<_Variants ...>, std::integer_sequence<long unsigned int, __indices ...> >::_S_apply_single_alt(_Tp&, _Tp*) [with bool __do_cookie = false; long unsigned int __index = 1; _Tp = std::__detail::__variant::_Multi_array<wasm::analysis::LatticeComparison (*)(wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&, const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&), 7, 7>; bool __same_return_types = true; _Result_type = wasm::analysis::LatticeComparison; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&; long unsigned int ...__dimensions = {7, 7, 7}; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}; long unsigned int ...__indices = {}]’
/usr/include/c++/9/variant:909:48: required from ‘constexpr const _Array_type std::__detail::__variant::__gen_vtable<true, wasm::analysis::LatticeComparison, wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&, const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&>::_S_vtable’
/usr/include/c++/9/variant:1647:23: required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with bool __use_index = false; bool __same_return_types = true; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}]’
/usr/include/c++/9/variant:1663:24: required from ‘constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}]’
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:964:37: required from here
/usr/include/c++/9/variant:94:29: error: ‘value’ is not a member of ‘std::variant_size<const wasm::analysis::Flat<unsigned int>::Element>’
94 | inline constexpr size_t variant_size_v = variant_size<_Variant>::value;
| ^~~~~~~~~~~~~~
/usr/include/c++/9/variant: In instantiation of ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with bool __use_index = false; bool __same_return_types = true; _Visitor = wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]::<lambda(const auto:22&, const auto:23&)>; _Variants = {const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&}]’:
/usr/include/c++/9/variant:1663:24: required from ‘constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]::<lambda(const auto:22&, const auto:23&)>; _Variants = {const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&}]’
/root/project/binaryen/main/src/analysis/lattices/flat.h:71:24: required from ‘bool wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]’
/root/project/binaryen/main/src/analysis/lattices/flat.h:93:11: required from ‘wasm::analysis::LatticeComparison wasm::analysis::Flat<T, Ts>::compare(const wasm::analysis::Flat<T, Ts>::Element&, const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]’
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:958:38: required from ‘wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)> [with auto:36 = wasm::analysis::Flat<unsigned int>; auto:37 = wasm::analysis::Flat<unsigned int>::Element; auto:38 = wasm::analysis::Flat<unsigned int>::Element]’
/usr/include/c++/9/bits/invoke.h:60:36: required from ‘constexpr _Res std::__invoke_impl(std::__invoke_other, _Fn&&, _Args&& ...) [with _Res = wasm::analysis::LatticeComparison; _Fn = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>; _Args = {const wasm::analysis::Flat<unsigned int>&, const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&}]’
/usr/include/c++/9/bits/invoke.h:95:40: [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/9/variant:1014:28: required from ‘static constexpr auto std::__detail::__variant::__gen_vtable_impl<__same_return_types, std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...)>, std::tuple<_Variants ...>, std::integer_sequence<long unsigned int, __indices ...> >::_S_apply() [with bool __same_return_types = true; _Result_type = wasm::analysis::LatticeComparison; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}; long unsigned int ...__indices = {1, 1, 1}]’
/usr/include/c++/9/variant:909:48: recursively required from ‘static constexpr void std::__detail::__variant::__gen_vtable_impl<__same_return_types, std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...), __dimensions ...>, std::tuple<_Variants ...>, std::integer_sequence<long unsigned int, __indices ...> >::_S_apply_single_alt(_Tp&, _Tp*) [with bool __do_cookie = false; long unsigned int __index = 1; _Tp = std::__detail::__variant::_Multi_array<wasm::analysis::LatticeComparison (*)(wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&, const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&), 7, 7>; bool __same_return_types = true; _Result_type = wasm::analysis::LatticeComparison; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&; long unsigned int ...__dimensions = {7, 7, 7}; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}; long unsigned int ...__indices = {}]’
/usr/include/c++/9/variant:909:48: required from ‘constexpr const _Array_type std::__detail::__variant::__gen_vtable<true, wasm::analysis::LatticeComparison, wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&, const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&>::_S_vtable’
/usr/include/c++/9/variant:1647:23: required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with bool __use_index = false; bool __same_return_types = true; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}]’
/usr/include/c++/9/variant:1663:24: required from ‘constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}]’
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:964:37: required from here
/usr/include/c++/9/variant:1647:23: error: ‘_S_vtable’ is not a member of ‘std::__detail::__variant::__gen_vtable<true, bool, wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]::<lambda(const auto:22&, const auto:23&)>&&, const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&>’
1647 | constexpr auto& __vtable = __detail::__variant::__gen_vtable<
| ^~~~~~~~
In file included from /root/project/binaryen/main/src/analysis/lattices/array.h:25,
from /root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:24:
/root/project/binaryen/main/src/analysis/lattices/flat.h: In instantiation of ‘bool wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]’:
/root/project/binaryen/main/src/analysis/lattices/flat.h:93:11: required from ‘wasm::analysis::LatticeComparison wasm::analysis::Flat<T, Ts>::compare(const wasm::analysis::Flat<T, Ts>::Element&, const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]’
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:958:38: required from ‘wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)> [with auto:36 = wasm::analysis::Flat<unsigned int>; auto:37 = wasm::analysis::Flat<unsigned int>::Element; auto:38 = wasm::analysis::Flat<unsigned int>::Element]’
/usr/include/c++/9/bits/invoke.h:60:36: required from ‘constexpr _Res std::__invoke_impl(std::__invoke_other, _Fn&&, _Args&& ...) [with _Res = wasm::analysis::LatticeComparison; _Fn = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>; _Args = {const wasm::analysis::Flat<unsigned int>&, const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&}]’
/usr/include/c++/9/bits/invoke.h:95:40: required from ‘constexpr typename std::__invoke_result<_Functor, _ArgTypes>::type std::__invoke(_Callable&&, _Args&& ...) [with _Callable = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>; _Args = {const wasm::analysis::Flat<unsigned int>&, const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&}; typename std::__invoke_result<_Functor, _ArgTypes>::type = wasm::analysis::LatticeComparison]’
/usr/include/c++/9/variant:981:24: required from ‘static constexpr decltype(auto) std::__detail::__variant::__gen_vtable_impl<__same_return_types, std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...)>, std::tuple<_Variants ...>, std::integer_sequence<long unsigned int, __indices ...> >::__visit_invoke_impl(_Visitor&&, _Variants ...) [with bool __same_return_types = true; _Result_type = wasm::analysis::LatticeComparison; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}; long unsigned int ...__indices = {1, 1, 1}]’
/usr/include/c++/9/variant:989:28: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/9/variant:1014:28: required from ‘static constexpr auto std::__detail::__variant::__gen_vtable_impl<__same_return_types, std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...)>, std::tuple<_Variants ...>, std::integer_sequence<long unsigned int, __indices ...> >::_S_apply() [with bool __same_return_types = true; _Result_type = wasm::analysis::LatticeComparison; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}; long unsigned int ...__indices = {1, 1, 1}]’
/usr/include/c++/9/variant:909:48: recursively required from ‘static constexpr void std::__detail::__variant::__gen_vtable_impl<__same_return_types, std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...), __dimensions ...>, std::tuple<_Variants ...>, std::integer_sequence<long unsigned int, __indices ...> >::_S_apply_single_alt(_Tp&, _Tp*) [with bool __do_cookie = false; long unsigned int __index = 1; _Tp = std::__detail::__variant::_Multi_array<wasm::analysis::LatticeComparison (*)(wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&, const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&), 7, 7>; bool __same_return_types = true; _Result_type = wasm::analysis::LatticeComparison; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&; long unsigned int ...__dimensions = {7, 7, 7}; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}; long unsigned int ...__indices = {}]’
/usr/include/c++/9/variant:909:48: required from ‘constexpr const _Array_type std::__detail::__variant::__gen_vtable<true, wasm::analysis::LatticeComparison, wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>&&, const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&>::_S_vtable’
/usr/include/c++/9/variant:1647:23: required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with bool __use_index = false; bool __same_return_types = true; _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}]’
/usr/include/c++/9/variant:1663:24: required from ‘constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = wasm::RandomLattice::compare(const Element&, const Element&) const::<lambda(const auto:36&, const auto:37&, const auto:38&)>; _Variants = {const std::variant<wasm::RandomFullLattice, wasm::analysis::Flat<unsigned int>, wasm::analysis::Lift<wasm::RandomLattice>, wasm::analysis::Array<wasm::RandomLattice, 2>, wasm::analysis::Vector<wasm::RandomLattice>, wasm::analysis::Tuple<wasm::RandomLattice, wasm::RandomLattice>, wasm::analysis::SharedPath<wasm::RandomLattice> >&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&, const std::variant<wasm::RandomElement<wasm::RandomFullLattice>, wasm::analysis::Flat<unsigned int>::Element, wasm::analysis::Lift<wasm::RandomLattice>::Element, std::array<wasm::RandomElement<wasm::RandomLattice>, 2>, std::vector<wasm::RandomElement<wasm::RandomLattice>, std::allocator<wasm::RandomElement<wasm::RandomLattice> > >, std::tuple<wasm::RandomElement<wasm::RandomLattice>, wasm::RandomElement<wasm::RandomLattice> >, wasm::analysis::SharedPath<wasm::RandomLattice>::Element>&}]’
/root/project/binaryen/main/src/tools/wasm-fuzz-lattices.cpp:964:37: required from here
/root/project/binaryen/main/src/analysis/lattices/flat.h:71:24: error: could not convert ‘std::visit<wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]::<lambda(const auto:22&, const auto:23&)>, const wasm::analysis::Flat<unsigned int>::Element&, const wasm::analysis::Flat<unsigned int>::Element&>(<lambda closure object>wasm::analysis::Flat<T, Ts>::Element::operator==(const wasm::analysis::Flat<T, Ts>::Element&) const [with T = unsigned int; Ts = {}]::<lambda(const auto:22&, const auto:23&)>{}, (*(const wasm::analysis::Flat<unsigned int>::Element*)this), (* & other))’ from ‘void’ to ‘bool’
71 | std::visit(
| ~~~~~~~~~~^
72 | [](const auto& a, const auto& b) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
73 | if constexpr (std::is_same_v<decltype(a), decltype(b)>) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74 | return a == b;
| ~~~~~~~~~~~~~~
75 | }
| ~
76 | return false;
| ~~~~~~~~~~~~~
77 | },
| ~~
78 | *this,
| ~~~~~~
79 | other);
| ~~~~~~
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’
make[2]: *** [src/tools/CMakeFiles/wasm-fuzz-lattices.dir/build.make:115: src/tools/CMakeFiles/wasm-fuzz-lattices.dir/wasm-fuzz-lattices.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:594: src/tools/CMakeFiles/wasm-fuzz-lattices.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Metadata
Metadata
Assignees
Labels
No labels