diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 90b802d..96b46d2 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -4562,9 +4562,9 @@
   if (!buffered_packets_.empty() || HandleWriteBlocked()) {
     QUIC_DVLOG(1) << ENDPOINT
                   << "Buffering coalesced packet of len: " << length;
-    buffered_packets_.emplace_back(buffer, length,
-                                   coalesced_packet_.self_address(),
-                                   coalesced_packet_.peer_address());
+    buffered_packets_.emplace_back(
+        buffer, static_cast<QuicPacketLength>(length),
+        coalesced_packet_.self_address(), coalesced_packet_.peer_address());
     if (debug_visitor_ != nullptr) {
       debug_visitor_->OnCoalescedPacketSent(coalesced_packet_, length);
     }
@@ -4589,9 +4589,9 @@
     if (result.status != WRITE_STATUS_BLOCKED_DATA_BUFFERED) {
       QUIC_DVLOG(1) << ENDPOINT
                     << "Buffering coalesced packet of len: " << length;
-      buffered_packets_.emplace_back(buffer, length,
-                                     coalesced_packet_.self_address(),
-                                     coalesced_packet_.peer_address());
+      buffered_packets_.emplace_back(
+          buffer, static_cast<QuicPacketLength>(length),
+          coalesced_packet_.self_address(), coalesced_packet_.peer_address());
     }
   }
   if (debug_visitor_ != nullptr) {
diff --git a/quic/core/quic_interval_deque.h b/quic/core/quic_interval_deque.h
index 2a3a758..0ac9827 100644
--- a/quic/core/quic_interval_deque.h
+++ b/quic/core/quic_interval_deque.h
@@ -186,6 +186,7 @@
       return copy;
     }
     reference operator*() { return deque_->container_[index_]; }
+    reference operator*() const { return deque_->container_[index_]; }
     pointer operator->() { return &deque_->container_[index_]; }
     bool operator==(const Iterator& rhs) const {
       return index_ == rhs.index_ && deque_ == rhs.deque_;
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index 4606486..7b498ee 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -768,6 +768,8 @@
       pending_timer_transmission_count_ = max_probe_packets_per_pto_;
       return PTO_MODE;
   }
+  QUIC_BUG << "Unknown retransmission mode " << GetRetransmissionMode();
+  return GetRetransmissionMode();
 }
 
 void QuicSentPacketManager::RetransmitCryptoPackets() {
