From f089fc8e25f6ce5bea9ef6c1bb11b234c4540c6a Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Fri, 3 Aug 2018 14:14:41 -0500 Subject: [PATCH] [gcc8] resolve compiler errors (#2944) This commit resolves compiler errors generated by gcc8. This commit also adds gcc8 build checks to travis. --- .travis.yml | 10 ++++++++++ src/core/meshcop/dataset.cpp | 4 +--- src/core/thread/network_diagnostic.cpp | 3 +-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index bbfb5b524..1d8c3c015 100644 --- a/.travis.yml +++ b/.travis.yml @@ -142,6 +142,16 @@ matrix: packages: - gcc-7 - g++-7 + - env: BUILD_TARGET="posix" CC="gcc-8" CXX="g++-8" + os: linux + compiler: gcc + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-8 + - g++-8 - env: BUILD_TARGET="posix-ncp-spi" VERBOSE=1 os: linux compiler: gcc diff --git a/src/core/meshcop/dataset.cpp b/src/core/meshcop/dataset.cpp index 665ce0ee9..8f3035f5c 100644 --- a/src/core/meshcop/dataset.cpp +++ b/src/core/meshcop/dataset.cpp @@ -487,9 +487,7 @@ otError Dataset::AppendMleDatasetTlv(Message &aMessage) const else if (cur->GetType() == Tlv::kDelayTimer) { uint32_t elapsed = TimerMilli::GetNow() - mUpdateTime; - DelayTimerTlv delayTimer; - - memcpy(&delayTimer, cur, sizeof(delayTimer)); + DelayTimerTlv delayTimer(static_cast(*cur)); if (delayTimer.GetDelayTimer() > elapsed) { diff --git a/src/core/thread/network_diagnostic.cpp b/src/core/thread/network_diagnostic.cpp index 147134503..9fb167e69 100644 --- a/src/core/thread/network_diagnostic.cpp +++ b/src/core/thread/network_diagnostic.cpp @@ -351,8 +351,7 @@ otError NetworkDiagnostic::FillRequestedTlvs(Message & aRequest, case NetworkDiagnosticTlv::kLeaderData: { - LeaderDataTlv tlv; - memcpy(&tlv, &netif.GetMle().GetLeaderDataTlv(), sizeof(tlv)); + LeaderDataTlv tlv(reinterpret_cast(netif.GetMle().GetLeaderDataTlv())); tlv.Init(); SuccessOrExit(error = aResponse.Append(&tlv, tlv.GetSize())); break;