diff --git a/src/base/addr_range.hh b/src/base/addr_range.hh
index df4afab9ecf8d573f4b22ed580b052f9791bfcfa..4cb1ebd5a27033bc8274eb5d0d82e0368cf2b007 100644
--- a/src/base/addr_range.hh
+++ b/src/base/addr_range.hh
@@ -45,6 +45,7 @@
 #ifndef __BASE_ADDR_RANGE_HH__
 #define __BASE_ADDR_RANGE_HH__
 
+#include <list>
 #include <vector>
 
 #include "base/bitfield.hh"
@@ -293,6 +294,11 @@ class AddrRange
 #endif // SWIG
 };
 
+/**
+ * Convenience typedef for a collection of address ranges
+ */
+typedef std::list<AddrRange> AddrRangeList;
+
 inline AddrRange
 RangeEx(Addr start, Addr end)
 { return AddrRange(start, end - 1); }
diff --git a/src/kern/tru64/tru64_events.cc b/src/kern/tru64/tru64_events.cc
index 943d961fb24939fc2128e05d882805b039ed4f30..df346d6abc83c28c36323c72b47ede193634a4f0 100644
--- a/src/kern/tru64/tru64_events.cc
+++ b/src/kern/tru64/tru64_events.cc
@@ -57,15 +57,14 @@ BadAddrEvent::process(ThreadContext *tc)
 
     uint64_t a0 = tc->readIntReg(16);
 
-    AddrRangeIter iter;
     bool found = false;
 
     MasterPort &dataPort = tc->getCpuPtr()->getDataPort();
 
     // get the address ranges of the connected slave port
     AddrRangeList resp = dataPort.getAddrRanges();
-    for (iter = resp.begin(); iter != resp.end(); iter++) {
-        if (iter->contains(K0Seg2Phys(a0) & PAddrImplMask))
+    for (const auto &iter : resp) {
+        if (iter.contains(K0Seg2Phys(a0) & PAddrImplMask))
             found = true;
     }
 
diff --git a/src/mem/port.hh b/src/mem/port.hh
index 28f4d7d687e2181bf3a4b1a38f95b2b537a89ea3..6b5e9530c385a212decd2cfc30a04cc4ee7d69e8 100644
--- a/src/mem/port.hh
+++ b/src/mem/port.hh
@@ -50,22 +50,9 @@
 #ifndef __MEM_PORT_HH__
 #define __MEM_PORT_HH__
 
-#include <list>
-
 #include "base/addr_range.hh"
 #include "mem/packet.hh"
 
-/**
- * This typedef is used to clean up getAddrRanges(). It's declared
- * outside the Port object since it's also used by some mem objects.
- * Eventually we should move this typedef to wherever Addr is
- * defined.
- */
-
-typedef std::list<AddrRange> AddrRangeList;
-typedef std::list<AddrRange>::iterator AddrRangeIter;
-typedef std::list<AddrRange>::const_iterator AddrRangeConstIter;
-
 class MemObject;
 
 /**
diff --git a/src/mem/ruby/system/RubyPort.cc b/src/mem/ruby/system/RubyPort.cc
index b839e66463d30735ef80ffdef4bd7e56481d09bf..1374c356638a083fe707923b503aa95100c9129f 100644
--- a/src/mem/ruby/system/RubyPort.cc
+++ b/src/mem/ruby/system/RubyPort.cc
@@ -526,8 +526,8 @@ RubyPort::PioSlavePort::getAddrRanges() const
         ranges.splice(ranges.begin(),
                 ruby_port->master_ports[i]->getAddrRanges());
     }
-    for (AddrRangeConstIter r = ranges.begin(); r != ranges.end(); ++r)
-        DPRINTF(RubyPort, "%s\n", r->to_string());
+    for (const auto M5_VAR_USED &r : ranges)
+        DPRINTF(RubyPort, "%s\n", r.to_string());
     return ranges;
 }