diff --git a/quic/core/crypto/crypto_handshake_message.cc b/quic/core/crypto/crypto_handshake_message.cc
index 2c92923..3df9f12 100644
--- a/quic/core/crypto/crypto_handshake_message.cc
+++ b/quic/core/crypto/crypto_handshake_message.cc
@@ -83,7 +83,7 @@
     QuicTag tag,
     ParsedQuicVersionVector versions) {
   QuicVersionLabelVector version_labels;
-  for (ParsedQuicVersion version : versions) {
+  for (const ParsedQuicVersion& version : versions) {
     version_labels.push_back(
         quiche::QuicheEndian::HostToNet32(CreateQuicVersionLabel(version)));
   }
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index be155a9..c9eabcb 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -766,7 +766,7 @@
 // TODO(nharper): Change this method to take a ParsedQuicVersion.
 bool QuicFramer::IsSupportedTransportVersion(
     const QuicTransportVersion version) const {
-  for (ParsedQuicVersion supported_version : supported_versions_) {
+  for (const ParsedQuicVersion& supported_version : supported_versions_) {
     if (version == supported_version.transport_version) {
       return true;
     }
diff --git a/quic/test_tools/simple_session_notifier.cc b/quic/test_tools/simple_session_notifier.cc
index 917d039..cb3b711 100644
--- a/quic/test_tools/simple_session_notifier.cc
+++ b/quic/test_tools/simple_session_notifier.cc
@@ -451,7 +451,7 @@
 }
 
 bool SimpleSessionNotifier::HasUnackedStreamData() const {
-  for (auto it : stream_map_) {
+  for (const auto& it : stream_map_) {
     if (StreamIsWaitingForAcks(it.first))
       return true;
   }
diff --git a/quic/tools/quic_packet_printer_bin.cc b/quic/tools/quic_packet_printer_bin.cc
index 3192d30..3efedde 100644
--- a/quic/tools/quic_packet_printer_bin.cc
+++ b/quic/tools/quic_packet_printer_bin.cc
@@ -255,7 +255,7 @@
   quic::QuicFramer framer(versions, start, perspective,
                           quic::kQuicDefaultConnectionIdLength);
   if (!GetQuicFlag(FLAGS_quic_version).empty()) {
-    for (quic::ParsedQuicVersion version : versions) {
+    for (const quic::ParsedQuicVersion& version : versions) {
       if (quic::QuicVersionToString(version.transport_version) ==
           GetQuicFlag(FLAGS_quic_version)) {
         framer.set_version(version);
diff --git a/quic/tools/quic_simple_server_session.cc b/quic/tools/quic_simple_server_session.cc
index 387b313..0637109 100644
--- a/quic/tools/quic_simple_server_session.cc
+++ b/quic/tools/quic_simple_server_session.cc
@@ -71,7 +71,7 @@
     return;
   }
 
-  for (QuicBackendResponse::ServerPushInfo resource : resources) {
+  for (const QuicBackendResponse::ServerPushInfo& resource : resources) {
     spdy::SpdyHeaderBlock headers = SynthesizePushRequestHeaders(
         request_url, resource, original_request_headers);
     // TODO(b/136295430): Use sequential push IDs for IETF QUIC.
