build: align minimum build dependencies with ndn-cxx

 * Recommend gcc >= 7.4.0
 * Require clang >= 4.0, or Xcode >= 9.0 on macOS
 * Silence an ABI-related diagnostic message from gcc on armv7
 * Update Travis CI job matrix

Refs: #5087, #5106
Change-Id: I71aef00147a7ad93b537904bb309745fed77f509
diff --git a/src/logic.cpp b/src/logic.cpp
index e0e6e02..2701aa5 100644
--- a/src/logic.cpp
+++ b/src/logic.cpp
@@ -482,14 +482,14 @@
 }
 
 void
-Logic::processResetInterest(const Interest& interest)
+Logic::processResetInterest(const Interest&)
 {
   _LOG_DEBUG_ID(">> Logic::processResetInterest");
   reset(true);
 }
 
 void
-Logic::processSyncData(const Name& name, ConstBufferPtr digest, const Block& syncReply)
+Logic::processSyncData(const Name&, ConstBufferPtr digest, const Block& syncReply)
 {
   _LOG_DEBUG_ID(">> Logic::processSyncData");
   DiffStatePtr commit = make_shared<DiffState>();
@@ -502,7 +502,7 @@
     reply.wireDecode(syncReply);
 
     std::vector<MissingDataInfo> v;
-    BOOST_FOREACH(ConstLeafPtr leaf, reply.getLeaves().get<ordered>()) {
+    for (const auto& leaf : reply.getLeaves().get<ordered>()) {
       BOOST_ASSERT(leaf != nullptr);
 
       const Name& info = leaf->getSessionName();
@@ -514,10 +514,8 @@
       std::tie(isInserted, isUpdated, oldSeq) = m_state.update(info, seq);
       if (isInserted || isUpdated) {
         commit->update(info, seq);
-
         oldSeq++;
-        MissingDataInfo mdi = {info, oldSeq, seq};
-        v.push_back(mdi);
+        v.push_back({info, oldSeq, seq});
       }
     }