diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2019-01-10 13:21:54 +0000 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2019-01-10 13:21:54 +0000 |
commit | cbe0bca4040e592889f022be23f9602a24487985 (patch) | |
tree | 52e8698eea13b0734dfc744626be60deea91a589 | |
parent | c3799b164fac7576ada4cad5a5069cbe911b4849 (diff) | |
download | gcc-cbe0bca4040e592889f022be23f9602a24487985.zip gcc-cbe0bca4040e592889f022be23f9602a24487985.tar.gz gcc-cbe0bca4040e592889f022be23f9602a24487985.tar.bz2 |
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
4 files changed, 19 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index fdaf477..19a12f8 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,12 @@ +2019-01-10 Jonathan Wakely <jwakely@redhat.com> + + * 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 <ville.voutilainen@gmail.com> Jonathan Wakely <jwakely@redhat.com> diff --git a/libstdc++-v3/include/experimental/internet b/libstdc++-v3/include/experimental/internet index cd0eee2..07c62e6 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 657e2f5..746557a 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 d926385..39fb7fd 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 ); |