diff --git a/common/quiche_data_reader.h b/common/quiche_data_reader.h
index 19632a2..833198d 100644
--- a/common/quiche_data_reader.h
+++ b/common/quiche_data_reader.h
@@ -170,8 +170,8 @@
   size_t pos() const { return pos_; }
 
   void AdvancePos(size_t amount) {
-    DCHECK_LE(pos_, std::numeric_limits<size_t>::max() - amount);
-    DCHECK_LE(pos_, len_ - amount);
+    QUICHE_DCHECK_LE(pos_, std::numeric_limits<size_t>::max() - amount);
+    QUICHE_DCHECK_LE(pos_, len_ - amount);
     pos_ += amount;
   }
 
diff --git a/common/quiche_data_writer.cc b/common/quiche_data_writer.cc
index b764290..4416d84 100644
--- a/common/quiche_data_writer.cc
+++ b/common/quiche_data_writer.cc
@@ -89,7 +89,7 @@
   }
 
 #ifdef ARCH_CPU_64_BITS
-  DCHECK_LE(length, std::numeric_limits<uint32_t>::max());
+  QUICHE_DCHECK_LE(length, std::numeric_limits<uint32_t>::max());
 #endif
 
   return buffer_ + length_;
@@ -120,7 +120,7 @@
 }
 
 void QuicheDataWriter::WritePadding() {
-  DCHECK_LE(length_, capacity_);
+  QUICHE_DCHECK_LE(length_, capacity_);
   if (length_ > capacity_) {
     return;
   }
diff --git a/common/quiche_data_writer.h b/common/quiche_data_writer.h
index f7b7966..d85f631 100644
--- a/common/quiche_data_writer.h
+++ b/common/quiche_data_writer.h
@@ -91,8 +91,8 @@
   char* buffer() const { return buffer_; }
 
   void IncreaseLength(size_t delta) {
-    DCHECK_LE(length_, std::numeric_limits<size_t>::max() - delta);
-    DCHECK_LE(length_, capacity_ - delta);
+    QUICHE_DCHECK_LE(length_, std::numeric_limits<size_t>::max() - delta);
+    QUICHE_DCHECK_LE(length_, capacity_ - delta);
     length_ += delta;
   }
 
diff --git a/common/simple_linked_hash_map.h b/common/simple_linked_hash_map.h
index 03c89d2..48da55b 100644
--- a/common/simple_linked_hash_map.h
+++ b/common/simple_linked_hash_map.h
@@ -123,10 +123,10 @@
   // to the item that comes immediately after the deleted item in the list, or
   // end().
   // If the provided iterator is invalid or there is inconsistency between the
-  // map and list, a CHECK() error will occur.
+  // map and list, a QUICHE_CHECK() error will occur.
   iterator erase(iterator position) {
     typename MapType::iterator found = map_.find(position->first);
-    CHECK(found->second == position)
+    QUICHE_CHECK(found->second == position)
         << "Inconsisent iterator for map and list, or the iterator is invalid.";
 
     map_.erase(found);
@@ -188,7 +188,7 @@
     typename ListType::iterator last = list_.end();
     --last;
 
-    CHECK(map_.insert(std::make_pair(pair.first, last)).second)
+    QUICHE_CHECK(map_.insert(std::make_pair(pair.first, last)).second)
         << "Map and list are inconsistent";
 
     return std::make_pair(last, true);
@@ -212,7 +212,7 @@
     typename ListType::iterator last = list_.end();
     --last;
 
-    CHECK(map_.insert(std::make_pair(last->first, last)).second)
+    QUICHE_CHECK(map_.insert(std::make_pair(last->first, last)).second)
         << "Map and list are inconsistent";
     return std::make_pair(last, true);
   }
