In file included from /workspace/boost/boost/url/grammar/tuple_rule.hpp:237,
from /workspace/boost/boost/url/rfc/impl/authority_rule.hpp:18,
from /workspace/boost/boost/url/rfc/authority_rule.hpp:72,
from mre.cpp:2:
In member function ‘constexpr void boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&, const boost::mp11::mp_true&) [with long unsigned int Ir = 1; long unsigned int Iv = 1; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’,
inlined from ‘constexpr typename std::enable_if<(Ir < (1 + sizeof... (Rn)))>::type boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&) [with long unsigned int Ir = 1; long unsigned int Iv = 1; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:265:14,
inlined from ‘constexpr void boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&, const boost::mp11::mp_false&) [with long unsigned int Ir = 0; long unsigned int Iv = 0; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:247:14,
inlined from ‘constexpr typename std::enable_if<(Ir < (1 + sizeof... (Rn)))>::type boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&) [with long unsigned int Ir = 0; long unsigned int Iv = 0; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:265:14,
inlined from ‘constexpr boost::system::result<typename boost::mp11::detail::mp_eval_if_c_impl<boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::IsList, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type, boost::mp11::mp_front, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type>::type> boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::parse(const char*&, const char*) const [with R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:291:12:
/workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:223:13: error: ‘((std::size_t*)((char*)&<unnamed> + offsetof(boost::system::result<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>,boost::system::result<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::v_.boost::variant2::variant<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_ma_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_mc_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_ca_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_cc_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::st_)))[3]’ may be used uninitialized [-Werror=maybe-uninitialized]
223 | v = rv.error();
| ^
/workspace/boost/boost/url/grammar/impl/tuple_rule.hpp: In member function ‘constexpr boost::system::result<typename boost::mp11::detail::mp_eval_if_c_impl<boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::IsList, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type, boost::mp11::mp_front, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type>::type> boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::parse(const char*&, const char*) const [with R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’:
/workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:223:15: note: ‘<anonymous>’ declared here
223 | v = rv.error();
| ~~^~~~~~~~~~~~
In member function ‘constexpr void boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&, const boost::mp11::mp_true&) [with long unsigned int Ir = 1; long unsigned int Iv = 1; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’,
inlined from ‘constexpr typename std::enable_if<(Ir < (1 + sizeof... (Rn)))>::type boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&) [with long unsigned int Ir = 1; long unsigned int Iv = 1; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:265:14,
inlined from ‘constexpr void boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&, const boost::mp11::mp_false&) [with long unsigned int Ir = 0; long unsigned int Iv = 0; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:247:14,
inlined from ‘constexpr typename std::enable_if<(Ir < (1 + sizeof... (Rn)))>::type boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&) [with long unsigned int Ir = 0; long unsigned int Iv = 0; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:265:14,
inlined from ‘constexpr boost::system::result<typename boost::mp11::detail::mp_eval_if_c_impl<boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::IsList, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type, boost::mp11::mp_front, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type>::type> boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::parse(const char*&, const char*) const [with R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:291:12:
/workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:223:13: error: ‘((const char**)((char*)&<unnamed> + offsetof(boost::system::result<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>,boost::system::result<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::v_.boost::variant2::variant<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_ma_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_mc_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_ca_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_cc_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::st_)))[4]’ may be used uninitialized [-Werror=maybe-uninitialized]
223 | v = rv.error();
| ^
/workspace/boost/boost/url/grammar/impl/tuple_rule.hpp: In member function ‘constexpr boost::system::result<typename boost::mp11::detail::mp_eval_if_c_impl<boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::IsList, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type, boost::mp11::mp_front, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type>::type> boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::parse(const char*&, const char*) const [with R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’:
/workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:223:15: note: ‘<anonymous>’ declared here
223 | v = rv.error();
| ~~^~~~~~~~~~~~
In member function ‘constexpr void boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&, const boost::mp11::mp_true&) [with long unsigned int Ir = 1; long unsigned int Iv = 1; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’,
inlined from ‘constexpr typename std::enable_if<(Ir < (1 + sizeof... (Rn)))>::type boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&) [with long unsigned int Ir = 1; long unsigned int Iv = 1; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:265:14,
inlined from ‘constexpr void boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&, const boost::mp11::mp_false&) [with long unsigned int Ir = 0; long unsigned int Iv = 0; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:247:14,
inlined from ‘constexpr typename std::enable_if<(Ir < (1 + sizeof... (Rn)))>::type boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&) [with long unsigned int Ir = 0; long unsigned int Iv = 0; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:265:14,
inlined from ‘constexpr boost::system::result<typename boost::mp11::detail::mp_eval_if_c_impl<boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::IsList, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type, boost::mp11::mp_front, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type>::type> boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::parse(const char*&, const char*) const [with R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:291:12:
/workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:223:13: error: ‘((std::size_t*)((char*)&<unnamed> + offsetof(boost::system::result<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>,boost::system::result<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::v_.boost::variant2::variant<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_ma_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_mc_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_ca_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_cc_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::st_)))[5]’ may be used uninitialized [-Werror=maybe-uninitialized]
223 | v = rv.error();
| ^
/workspace/boost/boost/url/grammar/impl/tuple_rule.hpp: In member function ‘constexpr boost::system::result<typename boost::mp11::detail::mp_eval_if_c_impl<boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::IsList, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type, boost::mp11::mp_front, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type>::type> boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::parse(const char*&, const char*) const [with R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’:
/workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:223:15: note: ‘<anonymous>’ declared here
223 | v = rv.error();
| ~~^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
grammar::parsewithauthority_ruletriggers-Wmaybe-uninitializedon GCC 14/15 at -O3.Reproducer:
Compile command:
Warning:
In file included from /workspace/boost/boost/url/grammar/tuple_rule.hpp:237, from /workspace/boost/boost/url/rfc/impl/authority_rule.hpp:18, from /workspace/boost/boost/url/rfc/authority_rule.hpp:72, from mre.cpp:2: In member function ‘constexpr void boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&, const boost::mp11::mp_true&) [with long unsigned int Ir = 1; long unsigned int Iv = 1; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’, inlined from ‘constexpr typename std::enable_if<(Ir < (1 + sizeof... (Rn)))>::type boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&) [with long unsigned int Ir = 1; long unsigned int Iv = 1; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:265:14, inlined from ‘constexpr void boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&, const boost::mp11::mp_false&) [with long unsigned int Ir = 0; long unsigned int Iv = 0; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:247:14, inlined from ‘constexpr typename std::enable_if<(Ir < (1 + sizeof... (Rn)))>::type boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&) [with long unsigned int Ir = 0; long unsigned int Iv = 0; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:265:14, inlined from ‘constexpr boost::system::result<typename boost::mp11::detail::mp_eval_if_c_impl<boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::IsList, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type, boost::mp11::mp_front, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type>::type> boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::parse(const char*&, const char*) const [with R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:291:12: /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:223:13: error: ‘((std::size_t*)((char*)&<unnamed> + offsetof(boost::system::result<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>,boost::system::result<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::v_.boost::variant2::variant<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_ma_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_mc_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_ca_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_cc_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::st_)))[3]’ may be used uninitialized [-Werror=maybe-uninitialized] 223 | v = rv.error(); | ^ /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp: In member function ‘constexpr boost::system::result<typename boost::mp11::detail::mp_eval_if_c_impl<boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::IsList, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type, boost::mp11::mp_front, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type>::type> boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::parse(const char*&, const char*) const [with R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’: /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:223:15: note: ‘<anonymous>’ declared here 223 | v = rv.error(); | ~~^~~~~~~~~~~~ In member function ‘constexpr void boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&, const boost::mp11::mp_true&) [with long unsigned int Ir = 1; long unsigned int Iv = 1; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’, inlined from ‘constexpr typename std::enable_if<(Ir < (1 + sizeof... (Rn)))>::type boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&) [with long unsigned int Ir = 1; long unsigned int Iv = 1; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:265:14, inlined from ‘constexpr void boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&, const boost::mp11::mp_false&) [with long unsigned int Ir = 0; long unsigned int Iv = 0; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:247:14, inlined from ‘constexpr typename std::enable_if<(Ir < (1 + sizeof... (Rn)))>::type boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&) [with long unsigned int Ir = 0; long unsigned int Iv = 0; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:265:14, inlined from ‘constexpr boost::system::result<typename boost::mp11::detail::mp_eval_if_c_impl<boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::IsList, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type, boost::mp11::mp_front, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type>::type> boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::parse(const char*&, const char*) const [with R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:291:12: /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:223:13: error: ‘((const char**)((char*)&<unnamed> + offsetof(boost::system::result<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>,boost::system::result<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::v_.boost::variant2::variant<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_ma_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_mc_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_ca_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_cc_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::st_)))[4]’ may be used uninitialized [-Werror=maybe-uninitialized] 223 | v = rv.error(); | ^ /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp: In member function ‘constexpr boost::system::result<typename boost::mp11::detail::mp_eval_if_c_impl<boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::IsList, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type, boost::mp11::mp_front, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type>::type> boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::parse(const char*&, const char*) const [with R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’: /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:223:15: note: ‘<anonymous>’ declared here 223 | v = rv.error(); | ~~^~~~~~~~~~~~ In member function ‘constexpr void boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&, const boost::mp11::mp_true&) [with long unsigned int Ir = 1; long unsigned int Iv = 1; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’, inlined from ‘constexpr typename std::enable_if<(Ir < (1 + sizeof... (Rn)))>::type boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&) [with long unsigned int Ir = 1; long unsigned int Iv = 1; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:265:14, inlined from ‘constexpr void boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&, const boost::mp11::mp_false&) [with long unsigned int Ir = 0; long unsigned int Iv = 0; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:247:14, inlined from ‘constexpr typename std::enable_if<(Ir < (1 + sizeof... (Rn)))>::type boost::urls::grammar::detail::parse_sequence<false, R0, Rn ...>::apply(const char*&, const char*, boost::mp11::mp_size_t<I>&, boost::mp11::mp_size_t<Iv>&) [with long unsigned int Ir = 0; long unsigned int Iv = 0; R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:265:14, inlined from ‘constexpr boost::system::result<typename boost::mp11::detail::mp_eval_if_c_impl<boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::IsList, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type, boost::mp11::mp_front, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type>::type> boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::parse(const char*&, const char*) const [with R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’ at /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:291:12: /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:223:13: error: ‘((std::size_t*)((char*)&<unnamed> + offsetof(boost::system::result<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>,boost::system::result<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::v_.boost::variant2::variant<boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_ma_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_mc_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_ca_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_cc_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::<unnamed>.boost::variant2::detail::variant_base_impl<true, true, boost::urls::detail::ipvfuture_rule_t::value_type, boost::system::error_code>::st_)))[5]’ may be used uninitialized [-Werror=maybe-uninitialized] 223 | v = rv.error(); | ^ /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp: In member function ‘constexpr boost::system::result<typename boost::mp11::detail::mp_eval_if_c_impl<boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::IsList, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type, boost::mp11::mp_front, typename boost::mp11::detail::mp_remove_impl<std::tuple<typename R0::value_type, typename Rn::value_type ...>, void>::type>::type> boost::urls::grammar::implementation_defined::tuple_rule_t<R0, Rn>::parse(const char*&, const char*) const [with R0 = boost::urls::detail::ipvfuture_rule_t; Rn = {boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>}]’: /workspace/boost/boost/url/grammar/impl/tuple_rule.hpp:223:15: note: ‘<anonymous>’ declared here 223 | v = rv.error(); | ~~^~~~~~~~~~~~ cc1plus: all warnings being treated as errorsThis issue occurs after the changes introduced in this commit: feat: constexpr URL parsing for C++20
.