Commit 372a65c7 authored by Dominik Charousset's avatar Dominik Charousset

Fix build on GCC 7.2

parent 23cfda0d
...@@ -119,6 +119,7 @@ is based on [Keep a Changelog](https://keepachangelog.com). ...@@ -119,6 +119,7 @@ is based on [Keep a Changelog](https://keepachangelog.com).
- Fix potential deadlock with `inline_all_enqueues` (backport from [0.18.0]). - Fix potential deadlock with `inline_all_enqueues` (backport from [0.18.0]).
- Exceptions while handling requests now trigger error messages (backport from - Exceptions while handling requests now trigger error messages (backport from
[0.18.0]). [0.18.0]).
- Fix build on GCC 7.2
## [0.17.4] - 2019-02-08 ## [0.17.4] - 2019-02-08
......
...@@ -189,10 +189,10 @@ void read_ipv6_address(State& ps, Consumer&& consumer) { ...@@ -189,10 +189,10 @@ void read_ipv6_address(State& ps, Consumer&& consumer) {
// Computes the result on success. // Computes the result on success.
auto g = caf::detail::make_scope_guard([&] { auto g = caf::detail::make_scope_guard([&] {
if (ps.code <= pec::trailing_character) { if (ps.code <= pec::trailing_character) {
ipv6_address::array_type bytes; ipv6_address result;
auto& bytes = result.bytes();
for (size_t i = 0; i < ipv6_address::num_bytes; ++i) for (size_t i = 0; i < ipv6_address::num_bytes; ++i)
bytes[i] = prefix[i] | suffix[i]; bytes[i] = prefix[i] | suffix[i];
ipv6_address result{bytes};
consumer.value(std::move(result)); consumer.value(std::move(result));
} }
}); });
...@@ -215,9 +215,10 @@ void read_ipv6_address(State& ps, Consumer&& consumer) { ...@@ -215,9 +215,10 @@ void read_ipv6_address(State& ps, Consumer&& consumer) {
// Utility function for promoting an IPv4 formatted input. // Utility function for promoting an IPv4 formatted input.
auto promote_v4 = [&] { auto promote_v4 = [&] {
if (filled_bytes == 4) { if (filled_bytes == 4) {
ipv4_address::array_type bytes; ipv4_address v4;
auto& bytes = v4.bytes();
memcpy(bytes.data(), prefix.data(), bytes.size()); memcpy(bytes.data(), prefix.data(), bytes.size());
prefix = ipv6_address{ipv4_address{bytes}}.bytes(); prefix = ipv6_address{v4}.bytes();
return true; return true;
} }
return false; return false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment