From: Jonathan Wakely Date: Thu, 10 Jan 2019 13:21:54 +0000 (+0000) Subject: Check AI_NUMERICSERV is defined before using it X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cbe0bca4040e592889f022be23f9602a24487985;p=gcc.git Check AI_NUMERICSERV is defined before using it The AI_NUMERICSERV constant is missing from old Darwin systems, so only use it if it's supported. * include/experimental/internet [AI_NUMERICSERV] (resolver_base::numeric_service): Define conditionally. * testsuite/experimental/net/internet/resolver/base.cc: Test it conditionally. * testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise. From-SVN: r267809 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index fdaf477c358..19a12f8e163 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,12 @@ +2019-01-10 Jonathan Wakely + + * include/experimental/internet [AI_NUMERICSERV] + (resolver_base::numeric_service): Define conditionally. + * testsuite/experimental/net/internet/resolver/base.cc: Test it + conditionally. + * testsuite/experimental/net/internet/resolver/ops/lookup.cc: + Likewise. + 2019-01-10 Ville Voutilainen Jonathan Wakely diff --git a/libstdc++-v3/include/experimental/internet b/libstdc++-v3/include/experimental/internet index cd0eee29585..07c62e697cd 100644 --- a/libstdc++-v3/include/experimental/internet +++ b/libstdc++-v3/include/experimental/internet @@ -1629,7 +1629,9 @@ namespace ip __flags_passive = AI_PASSIVE, __flags_canonical_name = AI_CANONNAME, __flags_numeric_host = AI_NUMERICHOST, +#ifdef AI_NUMERICSERV __flags_numeric_service = AI_NUMERICSERV, +#endif __flags_v4_mapped = AI_V4MAPPED, __flags_all_matching = AI_ALL, __flags_address_configured = AI_ADDRCONFIG @@ -1637,7 +1639,9 @@ namespace ip static constexpr flags passive = __flags_passive; static constexpr flags canonical_name = __flags_canonical_name; static constexpr flags numeric_host = __flags_numeric_host; +#ifdef AI_NUMERICSERV static constexpr flags numeric_service = __flags_numeric_service; +#endif static constexpr flags v4_mapped = __flags_v4_mapped; static constexpr flags all_matching = __flags_all_matching; static constexpr flags address_configured = __flags_address_configured; diff --git a/libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc b/libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc index 657e2f56b43..746557af656 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc @@ -49,7 +49,9 @@ test01() (void) resolver::passive; (void) resolver::canonical_name; (void) resolver::numeric_host; +#ifdef AI_NUMERICSERV (void) resolver::numeric_service; +#endif (void) resolver::v4_mapped; (void) resolver::all_matching; (void) resolver::address_configured; diff --git a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc index d926385f1a8..39fb7fd7708 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc @@ -49,7 +49,10 @@ test02() std::error_code ec; io_context ctx; ip::tcp::resolver resolv(ctx); - auto flags = ip::resolver_base::numeric_host | ip::tcp::resolver::numeric_service; + auto flags = ip::resolver_base::numeric_host; +#ifdef AI_NUMERICSERV + flags |= ip::tcp::resolver::numeric_service; +#endif auto addrs = resolv.resolve("127.0.0.1", "42", flags, ec); VERIFY( !ec ); VERIFY( addrs.size() > 0 );