Prepare to rename RTC_NOTREACHED to RTC_DCHECK_NOTREACHED

Add implementation of RTC_DCHECK_NOTREACHED equal to the RTC_NOTREACHED.
The new macros will replace the old one when old one's usage will be
removed. The idea of the renaming to provide a clear signal that this
is debug build only macros and will be stripped in the production build.

Bug: webrtc:9065
Change-Id: I4c35d8b03e74a4b3fd1ae75dba2f9c05643101db
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/237802
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35348}
diff --git a/api/audio/channel_layout.cc b/api/audio/channel_layout.cc
index 567f4d9..e4ae356 100644
--- a/api/audio/channel_layout.cc
+++ b/api/audio/channel_layout.cc
@@ -275,7 +275,7 @@
     case CHANNEL_LAYOUT_BITSTREAM:
       return "BITSTREAM";
   }
-  RTC_NOTREACHED() << "Invalid channel layout provided: " << layout;
+  RTC_DCHECK_NOTREACHED() << "Invalid channel layout provided: " << layout;
   return "";
 }
 
diff --git a/api/audio_codecs/audio_decoder.cc b/api/audio_codecs/audio_decoder.cc
index 4fc9951..d5c1cfe 100644
--- a/api/audio_codecs/audio_decoder.cc
+++ b/api/audio_codecs/audio_decoder.cc
@@ -161,7 +161,7 @@
     case 2:
       return kComfortNoise;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return kSpeech;
   }
 }
diff --git a/api/audio_codecs/audio_encoder.cc b/api/audio_codecs/audio_encoder.cc
index cd4d200..81cfbe3 100644
--- a/api/audio_codecs/audio_encoder.cc
+++ b/api/audio_codecs/audio_encoder.cc
@@ -83,7 +83,7 @@
 
 void AudioEncoder::OnReceivedUplinkRecoverablePacketLossFraction(
     float uplink_recoverable_packet_loss_fraction) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 void AudioEncoder::OnReceivedTargetAudioBitrate(int target_audio_bitrate_bps) {
diff --git a/api/media_stream_interface.h b/api/media_stream_interface.h
index ad497d9..d61dd98 100644
--- a/api/media_stream_interface.h
+++ b/api/media_stream_interface.h
@@ -203,7 +203,7 @@
                       int sample_rate,
                       size_t number_of_channels,
                       size_t number_of_frames) {
-    RTC_NOTREACHED() << "This method must be overridden, or not used.";
+    RTC_DCHECK_NOTREACHED() << "This method must be overridden, or not used.";
   }
 
   // In this method, `absolute_capture_timestamp_ms`, when available, is
diff --git a/api/media_types.cc b/api/media_types.cc
index 3453ce3..5c7d55b 100644
--- a/api/media_types.cc
+++ b/api/media_types.cc
@@ -28,7 +28,7 @@
       return kMediaTypeData;
     case MEDIA_TYPE_UNSUPPORTED:
       // Unsupported media stores the m=<mediatype> differently.
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return "";
   }
   RTC_CHECK_NOTREACHED();
diff --git a/api/packet_socket_factory.h b/api/packet_socket_factory.h
index a46ba27..29d2606 100644
--- a/api/packet_socket_factory.h
+++ b/api/packet_socket_factory.h
@@ -79,7 +79,7 @@
   virtual AsyncResolverInterface* CreateAsyncResolver() {
     // Default implementation, so that downstream users can remove this
     // immediately after changing to CreateAsyncDnsResolver
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return nullptr;
   }
 
diff --git a/api/rtp_transceiver_interface.cc b/api/rtp_transceiver_interface.cc
index fd5085c..454e450 100644
--- a/api/rtp_transceiver_interface.cc
+++ b/api/rtp_transceiver_interface.cc
@@ -34,17 +34,19 @@
 }
 
 RTCError RtpTransceiverInterface::StopStandard() {
-  RTC_NOTREACHED() << "DEBUG: RtpTransceiverInterface::StopStandard called";
+  RTC_DCHECK_NOTREACHED()
+      << "DEBUG: RtpTransceiverInterface::StopStandard called";
   return RTCError::OK();
 }
 
 void RtpTransceiverInterface::StopInternal() {
-  RTC_NOTREACHED() << "DEBUG: RtpTransceiverInterface::StopInternal called";
+  RTC_DCHECK_NOTREACHED()
+      << "DEBUG: RtpTransceiverInterface::StopInternal called";
 }
 
 RTCError RtpTransceiverInterface::SetCodecPreferences(
     rtc::ArrayView<RtpCodecCapability>) {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return {};
 }
 
@@ -78,7 +80,7 @@
 
 RTCError RtpTransceiverInterface::SetDirectionWithError(
     RtpTransceiverDirection new_direction) {
-  RTC_NOTREACHED() << "Default implementation called";
+  RTC_DCHECK_NOTREACHED() << "Default implementation called";
   return RTCError::OK();
 }
 
diff --git a/api/stats_types.cc b/api/stats_types.cc
index ddba593..60818ee 100644
--- a/api/stats_types.cc
+++ b/api/stats_types.cc
@@ -58,7 +58,7 @@
     case StatsReport::kStatsReportTypeDataChannel:
       return "datachannel";
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 
@@ -291,7 +291,7 @@
     case kId:
       return (*value_.id_)->Equals(*other.value_.id_);
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return false;
 }
 
@@ -676,7 +676,7 @@
     case kId:
       return (*value_.id_)->ToString();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return std::string();
 }
 
diff --git a/api/test/frame_generator_interface.cc b/api/test/frame_generator_interface.cc
index 356fe3a..fe7b1e8 100644
--- a/api/test/frame_generator_interface.cc
+++ b/api/test/frame_generator_interface.cc
@@ -26,7 +26,7 @@
     case OutputType::kNV12:
       return "NV12";
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 }
 
diff --git a/api/test/video/function_video_encoder_factory.h b/api/test/video/function_video_encoder_factory.h
index a452eee..9ae9719 100644
--- a/api/test/video/function_video_encoder_factory.h
+++ b/api/test/video/function_video_encoder_factory.h
@@ -39,7 +39,7 @@
 
   // Unused by tests.
   std::vector<SdpVideoFormat> GetSupportedFormats() const override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return {};
   }
 
diff --git a/api/transport/rtp/dependency_descriptor.cc b/api/transport/rtp/dependency_descriptor.cc
index 2a9b6d9..e784853 100644
--- a/api/transport/rtp/dependency_descriptor.cc
+++ b/api/transport/rtp/dependency_descriptor.cc
@@ -43,7 +43,7 @@
         indication = DecodeTargetIndication::kSwitch;
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
     dtis.push_back(indication);
   }
diff --git a/api/transport/stun.cc b/api/transport/stun.cc
index f774e98..87da005 100644
--- a/api/transport/stun.cc
+++ b/api/transport/stun.cc
@@ -76,7 +76,7 @@
       // Return an arbitrary restriction for all other types.
       return length <= kTheoreticalMaximumAttributeLength;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return true;
 }
 
diff --git a/api/video/i010_buffer.cc b/api/video/i010_buffer.cc
index aeea050..b98e586 100644
--- a/api/video/i010_buffer.cc
+++ b/api/video/i010_buffer.cc
@@ -117,7 +117,7 @@
       switch (rotation) {
         // This case is covered by the early return.
         case webrtc::kVideoRotation_0:
-          RTC_NOTREACHED();
+          RTC_DCHECK_NOTREACHED();
           break;
         case webrtc::kVideoRotation_90:
           dest_x = src.height() - y - 1;
diff --git a/api/video/rtp_video_frame_assembler.cc b/api/video/rtp_video_frame_assembler.cc
index 271ac22..81c0838 100644
--- a/api/video/rtp_video_frame_assembler.cc
+++ b/api/video/rtp_video_frame_assembler.cc
@@ -51,7 +51,7 @@
     case RtpVideoFrameAssembler::kGeneric:
       return std::make_unique<VideoRtpDepacketizerGeneric>();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 }  // namespace
diff --git a/api/video/rtp_video_frame_assembler_unittests.cc b/api/video/rtp_video_frame_assembler_unittests.cc
index 74e4906..82defb8 100644
--- a/api/video/rtp_video_frame_assembler_unittests.cc
+++ b/api/video/rtp_video_frame_assembler_unittests.cc
@@ -93,7 +93,7 @@
         return kVideoCodecGeneric;
       }
     }
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return absl::nullopt;
   }
 
diff --git a/api/video/video_frame_buffer.cc b/api/video/video_frame_buffer.cc
index 7085010..2b493dc 100644
--- a/api/video/video_frame_buffer.cc
+++ b/api/video/video_frame_buffer.cc
@@ -81,7 +81,7 @@
     case VideoFrameBuffer::Type::kNV12:
       return "kNV12";
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 }
 
diff --git a/api/video_codecs/test/video_decoder_software_fallback_wrapper_unittest.cc b/api/video_codecs/test/video_decoder_software_fallback_wrapper_unittest.cc
index 3d0e56e..73dedc8 100644
--- a/api/video_codecs/test/video_decoder_software_fallback_wrapper_unittest.cc
+++ b/api/video_codecs/test/video_decoder_software_fallback_wrapper_unittest.cc
@@ -179,13 +179,13 @@
     int32_t Decoded(VideoFrame& decodedImage) override { return 0; }
     int32_t Decoded(webrtc::VideoFrame& decodedImage,
                     int64_t decode_time_ms) override {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return -1;
     }
     void Decoded(webrtc::VideoFrame& decodedImage,
                  absl::optional<int32_t> decode_time_ms,
                  absl::optional<uint8_t> qp) override {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
   } callback;
 
diff --git a/api/video_codecs/video_decoder_software_fallback_wrapper.cc b/api/video_codecs/video_decoder_software_fallback_wrapper.cc
index 9d58388..6b8211c 100644
--- a/api/video_codecs/video_decoder_software_fallback_wrapper.cc
+++ b/api/video_codecs/video_decoder_software_fallback_wrapper.cc
@@ -215,7 +215,7 @@
       return fallback_decoder_->Decode(input_image, missing_frames,
                                        render_time_ms);
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return WEBRTC_VIDEO_CODEC_ERROR;
   }
 }
@@ -240,7 +240,7 @@
       status = WEBRTC_VIDEO_CODEC_OK;
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       status = WEBRTC_VIDEO_CODEC_ERROR;
   }
 
diff --git a/api/video_codecs/video_encoder_config.cc b/api/video_codecs/video_encoder_config.cc
index 0321da2..206a1d3 100644
--- a/api/video_codecs/video_encoder_config.cc
+++ b/api/video_codecs/video_encoder_config.cc
@@ -97,23 +97,24 @@
   } else if (codec->codecType == kVideoCodecVP9) {
     FillVideoCodecVp9(codec->VP9());
   } else {
-    RTC_NOTREACHED() << "Encoder specifics set/used for unknown codec type.";
+    RTC_DCHECK_NOTREACHED()
+        << "Encoder specifics set/used for unknown codec type.";
   }
 }
 
 void VideoEncoderConfig::EncoderSpecificSettings::FillVideoCodecH264(
     VideoCodecH264* h264_settings) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 void VideoEncoderConfig::EncoderSpecificSettings::FillVideoCodecVp8(
     VideoCodecVP8* vp8_settings) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 void VideoEncoderConfig::EncoderSpecificSettings::FillVideoCodecVp9(
     VideoCodecVP9* vp9_settings) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 VideoEncoderConfig::H264EncoderSpecificSettings::H264EncoderSpecificSettings(
diff --git a/api/video_codecs/vp8_frame_config.cc b/api/video_codecs/vp8_frame_config.cc
index 7253206..05e1911 100644
--- a/api/video_codecs/vp8_frame_config.cc
+++ b/api/video_codecs/vp8_frame_config.cc
@@ -56,7 +56,7 @@
     case Buffer::kCount:
       break;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return false;
 }
 
@@ -71,7 +71,7 @@
     case Buffer::kCount:
       break;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return false;
 }
 
diff --git a/audio/channel_receive.cc b/audio/channel_receive.cc
index 9c6f672..6c16f43 100644
--- a/audio/channel_receive.cc
+++ b/audio/channel_receive.cc
@@ -918,7 +918,7 @@
   // Depending on when the channel is created, the transformer might be set
   // twice. Don't replace the delegate if it was already initialized.
   if (!frame_transformer || frame_transformer_delegate_) {
-    RTC_NOTREACHED() << "Not setting the transformer?";
+    RTC_DCHECK_NOTREACHED() << "Not setting the transformer?";
     return;
   }
 
diff --git a/audio/utility/audio_frame_operations.cc b/audio/utility/audio_frame_operations.cc
index 8f3f37a..1b936c2 100644
--- a/audio/utility/audio_frame_operations.cc
+++ b/audio/utility/audio_frame_operations.cc
@@ -131,8 +131,8 @@
     return;
   }
 
-  RTC_NOTREACHED() << "src_channels: " << src_channels
-                   << ", dst_channels: " << dst_channels;
+  RTC_DCHECK_NOTREACHED() << "src_channels: " << src_channels
+                          << ", dst_channels: " << dst_channels;
 }
 
 void AudioFrameOperations::DownmixChannels(size_t dst_channels,
@@ -149,8 +149,8 @@
     int err = QuadToStereo(frame);
     RTC_DCHECK_EQ(err, 0);
   } else {
-    RTC_NOTREACHED() << "src_channels: " << frame->num_channels_
-                     << ", dst_channels: " << dst_channels;
+    RTC_DCHECK_NOTREACHED() << "src_channels: " << frame->num_channels_
+                            << ", dst_channels: " << dst_channels;
   }
 }
 
diff --git a/call/adaptation/video_stream_adapter.cc b/call/adaptation/video_stream_adapter.cc
index ca62502..c6560b3 100644
--- a/call/adaptation/video_stream_adapter.cc
+++ b/call/adaptation/video_stream_adapter.cc
@@ -509,7 +509,7 @@
     max_frame_rate = balanced_settings_.MinFps(input_state.video_codec_type(),
                                                frame_size_pixels);
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     max_frame_rate = GetLowerFrameRateThan(input_state.frames_per_second());
   }
   if (!CanDecreaseFrameRateTo(max_frame_rate,
@@ -584,7 +584,7 @@
       return Adaptation::Status::kLimitReached;
     }
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     max_frame_rate = GetHigherFrameRateThan(input_state.frames_per_second());
   }
   if (current_restrictions.counters.fps_adaptations == 1) {
diff --git a/call/rtp_config.cc b/call/rtp_config.cc
index c84a63e..5457a94 100644
--- a/call/rtp_config.cc
+++ b/call/rtp_config.cc
@@ -29,7 +29,7 @@
     if (ssrcs[i] == ssrc)
       return associated_ssrcs[i];
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
diff --git a/call/rtp_payload_params.cc b/call/rtp_payload_params.cc
index 53a4cca..5eff91f 100644
--- a/call/rtp_payload_params.cc
+++ b/call/rtp_payload_params.cc
@@ -295,7 +295,7 @@
     case VideoCodecType::kVideoCodecMultiplex:
       return;
   }
-  RTC_NOTREACHED() << "Unsupported codec.";
+  RTC_DCHECK_NOTREACHED() << "Unsupported codec.";
 }
 
 void RtpPayloadParams::GenericToGeneric(int64_t shared_frame_id,
diff --git a/common_audio/fir_filter_factory.cc b/common_audio/fir_filter_factory.cc
index 4bcf052..2ecef65 100644
--- a/common_audio/fir_filter_factory.cc
+++ b/common_audio/fir_filter_factory.cc
@@ -28,7 +28,7 @@
                            size_t coefficients_length,
                            size_t max_input_length) {
   if (!coefficients || coefficients_length <= 0 || max_input_length <= 0) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return nullptr;
   }
 
diff --git a/common_audio/vad/vad.cc b/common_audio/vad/vad.cc
index 987ed52..1647246 100644
--- a/common_audio/vad/vad.cc
+++ b/common_audio/vad/vad.cc
@@ -38,7 +38,7 @@
       case 1:
         return kActive;
       default:
-        RTC_NOTREACHED() << "WebRtcVad_Process returned an error.";
+        RTC_DCHECK_NOTREACHED() << "WebRtcVad_Process returned an error.";
         return kError;
     }
   }
diff --git a/common_video/h264/pps_parser_unittest.cc b/common_video/h264/pps_parser_unittest.cc
index f5b03dc..652f4c7 100644
--- a/common_video/h264/pps_parser_unittest.cc
+++ b/common_video/h264/pps_parser_unittest.cc
@@ -99,7 +99,7 @@
         break;
       }
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
   }
 
diff --git a/common_video/libyuv/webrtc_libyuv.cc b/common_video/libyuv/webrtc_libyuv.cc
index cc6a71a..2e10a60 100644
--- a/common_video/libyuv/webrtc_libyuv.cc
+++ b/common_video/libyuv/webrtc_libyuv.cc
@@ -45,7 +45,7 @@
       buffer_size = width * height * 4;
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
   return buffer_size;
@@ -106,7 +106,7 @@
     case VideoType::kBGRA:
       return libyuv::FOURCC_BGRA;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return libyuv::FOURCC_ANY;
 }
 
diff --git a/common_video/video_frame_buffer_pool.cc b/common_video/video_frame_buffer_pool.cc
index a450bd1..9c88f0b 100644
--- a/common_video/video_frame_buffer_pool.cc
+++ b/common_video/video_frame_buffer_pool.cc
@@ -31,7 +31,7 @@
           ->HasOneRef();
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   return false;
 }
diff --git a/common_video/video_frame_unittest.cc b/common_video/video_frame_unittest.cc
index 53a60e3..9a70f07 100644
--- a/common_video/video_frame_unittest.cc
+++ b/common_video/video_frame_unittest.cc
@@ -37,7 +37,7 @@
       case VideoFrameBuffer::Type::kI010:
         return I010Buffer::Create(width, height);
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
     return nullptr;
   }
@@ -49,7 +49,7 @@
       case VideoFrameBuffer::Type::kI010:
         return I010Buffer::Copy(*src.GetI010());
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
     return nullptr;
   }
@@ -62,7 +62,7 @@
       case VideoFrameBuffer::Type::kI010:
         return I010Buffer::Rotate(*src.GetI010(), rotation);
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
     return nullptr;
   }
@@ -89,7 +89,7 @@
         return buffer;
       }
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
     return nullptr;
   }
@@ -123,7 +123,7 @@
         return buffer;
       }
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
     return nullptr;
   }
@@ -367,7 +367,7 @@
       break;
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 
   rtc::scoped_refptr<PlanarYuvBuffer> buf2 =
diff --git a/examples/androidvoip/jni/android_voip_client.cc b/examples/androidvoip/jni/android_voip_client.cc
index 9f859cb..09234e4 100644
--- a/examples/androidvoip/jni/android_voip_client.cc
+++ b/examples/androidvoip/jni/android_voip_client.cc
@@ -112,7 +112,7 @@
     return static_cast<int>(PayloadType::kIlbc);
   }
 
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return -1;
 }
 
diff --git a/examples/peerconnection/client/conductor.cc b/examples/peerconnection/client/conductor.cc
index 5f213de..d9adffb 100644
--- a/examples/peerconnection/client/conductor.cc
+++ b/examples/peerconnection/client/conductor.cc
@@ -549,7 +549,7 @@
     }
 
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
 }
diff --git a/examples/peerconnection/client/linux/main_wnd.cc b/examples/peerconnection/client/linux/main_wnd.cc
index fe29d62..e9b6a51 100644
--- a/examples/peerconnection/client/linux/main_wnd.cc
+++ b/examples/peerconnection/client/linux/main_wnd.cc
@@ -514,7 +514,7 @@
   cairo_fill(cr);
   cairo_surface_destroy(surface);
 #else
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 #endif
 }
 
diff --git a/examples/peerconnection/client/main.cc b/examples/peerconnection/client/main.cc
index e209171..3ab4176 100644
--- a/examples/peerconnection/client/main.cc
+++ b/examples/peerconnection/client/main.cc
@@ -101,7 +101,7 @@
   MainWnd wnd(server.c_str(), absl::GetFlag(FLAGS_port),
               absl::GetFlag(FLAGS_autoconnect), absl::GetFlag(FLAGS_autocall));
   if (!wnd.Create()) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return -1;
   }
 
diff --git a/logging/rtc_event_log/encoder/delta_encoding_unittest.cc b/logging/rtc_event_log/encoder/delta_encoding_unittest.cc
index 3d91362..d0f7fb9 100644
--- a/logging/rtc_event_log/encoder/delta_encoding_unittest.cc
+++ b/logging/rtc_event_log/encoder/delta_encoding_unittest.cc
@@ -44,7 +44,7 @@
       SetFixedLengthEncoderDeltaSignednessForTesting(true);
       return;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 uint64_t RandomWithMaxBitWidth(Random* prng, uint64_t max_width) {
diff --git a/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc b/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc
index 6422ea0..ff72163 100644
--- a/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc
+++ b/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc
@@ -78,9 +78,9 @@
     case BandwidthUsage::kBwOverusing:
       return rtclog::DelayBasedBweUpdate::BWE_OVERUSING;
     case BandwidthUsage::kLast:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog::DelayBasedBweUpdate::BWE_NORMAL;
 }
 
@@ -94,9 +94,9 @@
     case ProbeFailureReason::kTimeout:
       return rtclog::BweProbeResult::TIMEOUT;
     case ProbeFailureReason::kLast:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog::BweProbeResult::SUCCESS;
 }
 
@@ -107,9 +107,9 @@
     case RtcpMode::kReducedSize:
       return rtclog::VideoReceiveConfig::RTCP_REDUCEDSIZE;
     case RtcpMode::kOff:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog::VideoReceiveConfig::RTCP_COMPOUND;
 }
 
@@ -125,9 +125,9 @@
     case IceCandidatePairConfigType::kSelected:
       return rtclog::IceCandidatePairConfig::SELECTED;
     case IceCandidatePairConfigType::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog::IceCandidatePairConfig::ADDED;
 }
 
@@ -145,9 +145,9 @@
     case IceCandidateType::kRelay:
       return rtclog::IceCandidatePairConfig::RELAY;
     case IceCandidateType::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog::IceCandidatePairConfig::UNKNOWN_CANDIDATE_TYPE;
 }
 
@@ -165,9 +165,9 @@
     case IceCandidatePairProtocol::kTls:
       return rtclog::IceCandidatePairConfig::TLS;
     case IceCandidatePairProtocol::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog::IceCandidatePairConfig::UNKNOWN_PROTOCOL;
 }
 
@@ -182,9 +182,9 @@
     case IceCandidatePairAddressFamily::kIpv6:
       return rtclog::IceCandidatePairConfig::IPV6;
     case IceCandidatePairAddressFamily::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog::IceCandidatePairConfig::UNKNOWN_ADDRESS_FAMILY;
 }
 
@@ -204,9 +204,9 @@
     case IceCandidateNetworkType::kCellular:
       return rtclog::IceCandidatePairConfig::CELLULAR;
     case IceCandidateNetworkType::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog::IceCandidatePairConfig::UNKNOWN_NETWORK_TYPE;
 }
 
@@ -222,9 +222,9 @@
     case IceCandidatePairEventType::kCheckResponseReceived:
       return rtclog::IceCandidatePairEvent::CHECK_RESPONSE_RECEIVED;
     case IceCandidatePairEventType::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog::IceCandidatePairEvent::CHECK_SENT;
 }
 
@@ -374,7 +374,7 @@
   }
 
   int event_type = static_cast<int>(event.GetType());
-  RTC_NOTREACHED() << "Unknown event type (" << event_type << ")";
+  RTC_DCHECK_NOTREACHED() << "Unknown event type (" << event_type << ")";
   return "";
 }
 
diff --git a/logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.cc b/logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.cc
index 236aea7..ce9f813 100644
--- a/logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.cc
+++ b/logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.cc
@@ -86,9 +86,9 @@
     case BandwidthUsage::kBwOverusing:
       return rtclog2::DelayBasedBweUpdates::BWE_OVERUSING;
     case BandwidthUsage::kLast:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog2::DelayBasedBweUpdates::BWE_UNKNOWN_STATE;
 }
 
@@ -108,7 +108,7 @@
       // This codec type is afaik not used.
       return rtclog2::FrameDecodedEvents::CODEC_UNKNOWN;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog2::FrameDecodedEvents::CODEC_UNKNOWN;
 }
 
@@ -122,9 +122,9 @@
     case ProbeFailureReason::kTimeout:
       return rtclog2::BweProbeResultFailure::TIMEOUT;
     case ProbeFailureReason::kLast:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog2::BweProbeResultFailure::UNKNOWN;
 }
 
@@ -167,9 +167,9 @@
     case webrtc::DtlsTransportState::kFailed:
       return rtclog2::DtlsTransportStateEvent::DTLS_TRANSPORT_FAILED;
     case webrtc::DtlsTransportState::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog2::DtlsTransportStateEvent::UNKNOWN_DTLS_TRANSPORT_STATE;
 }
 
@@ -185,9 +185,9 @@
     case IceCandidatePairConfigType::kSelected:
       return rtclog2::IceCandidatePairConfig::SELECTED;
     case IceCandidatePairConfigType::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog2::IceCandidatePairConfig::UNKNOWN_CONFIG_TYPE;
 }
 
@@ -205,9 +205,9 @@
     case IceCandidateType::kRelay:
       return rtclog2::IceCandidatePairConfig::RELAY;
     case IceCandidateType::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog2::IceCandidatePairConfig::UNKNOWN_CANDIDATE_TYPE;
 }
 
@@ -225,9 +225,9 @@
     case IceCandidatePairProtocol::kTls:
       return rtclog2::IceCandidatePairConfig::TLS;
     case IceCandidatePairProtocol::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog2::IceCandidatePairConfig::UNKNOWN_PROTOCOL;
 }
 
@@ -241,9 +241,9 @@
     case IceCandidatePairAddressFamily::kIpv6:
       return rtclog2::IceCandidatePairConfig::IPV6;
     case IceCandidatePairAddressFamily::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog2::IceCandidatePairConfig::UNKNOWN_ADDRESS_FAMILY;
 }
 
@@ -263,9 +263,9 @@
     case IceCandidateNetworkType::kCellular:
       return rtclog2::IceCandidatePairConfig::CELLULAR;
     case IceCandidateNetworkType::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog2::IceCandidatePairConfig::UNKNOWN_NETWORK_TYPE;
 }
 
@@ -281,9 +281,9 @@
     case IceCandidatePairEventType::kCheckResponseReceived:
       return rtclog2::IceCandidatePairEvent::CHECK_RESPONSE_RECEIVED;
     case IceCandidatePairEventType::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return rtclog2::IceCandidatePairEvent::UNKNOWN_CHECK_TYPE;
 }
 
diff --git a/logging/rtc_event_log/events/rtc_event_field_encoding.cc b/logging/rtc_event_log/events/rtc_event_field_encoding.cc
index 23aa308..68188ce 100644
--- a/logging/rtc_event_log/events/rtc_event_field_encoding.cc
+++ b/logging/rtc_event_log/events/rtc_event_field_encoding.cc
@@ -76,10 +76,10 @@
     case FieldType::kVarInt:
       return EncodeVarInt(value);
     case FieldType::kString:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return std::string();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return std::string();
 }
 
diff --git a/logging/rtc_event_log/events/rtc_event_field_encoding_parser.cc b/logging/rtc_event_log/events/rtc_event_field_encoding_parser.cc
index 3740da9..a9b0c08 100644
--- a/logging/rtc_event_log/events/rtc_event_field_encoding_parser.cc
+++ b/logging/rtc_event_log/events/rtc_event_field_encoding_parser.cc
@@ -109,11 +109,11 @@
     case FieldType::kVarInt:
       return ReadVarInt();
     case FieldType::kString:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       SetError();
       return 0;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   SetError();
   return 0;
 }
diff --git a/logging/rtc_event_log/events/rtc_event_field_encoding_unittest.cc b/logging/rtc_event_log/events/rtc_event_field_encoding_unittest.cc
index 3ff0114..b155469 100644
--- a/logging/rtc_event_log/events/rtc_event_field_encoding_unittest.cc
+++ b/logging/rtc_event_log/events/rtc_event_field_encoding_unittest.cc
@@ -52,7 +52,7 @@
     default:
       break;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
diff --git a/logging/rtc_event_log/rtc_event_log_impl.cc b/logging/rtc_event_log/rtc_event_log_impl.cc
index 38cf5f7..4237b2a 100644
--- a/logging/rtc_event_log/rtc_event_log_impl.cc
+++ b/logging/rtc_event_log/rtc_event_log_impl.cc
@@ -48,7 +48,7 @@
     default:
       RTC_LOG(LS_ERROR) << "Unknown RtcEventLog encoder type (" << int(type)
                         << ")";
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return std::unique_ptr<RtcEventLogEncoder>(nullptr);
   }
 }
diff --git a/logging/rtc_event_log/rtc_event_log_parser.cc b/logging/rtc_event_log/rtc_event_log_parser.cc
index f778498..3b3eb18 100644
--- a/logging/rtc_event_log/rtc_event_log_parser.cc
+++ b/logging/rtc_event_log/rtc_event_log_parser.cc
@@ -174,7 +174,7 @@
     case rtclog::VideoReceiveConfig::RTCP_REDUCEDSIZE:
       return RtcpMode::kReducedSize;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return RtcpMode::kOff;
 }
 
@@ -188,7 +188,7 @@
     case rtclog::DelayBasedBweUpdate::BWE_OVERUSING:
       return BandwidthUsage::kBwOverusing;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return BandwidthUsage::kBwNormal;
 }
 
@@ -204,7 +204,7 @@
     case rtclog::IceCandidatePairConfig::SELECTED:
       return IceCandidatePairConfigType::kSelected;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return IceCandidatePairConfigType::kAdded;
 }
 
@@ -222,7 +222,7 @@
     case rtclog::IceCandidatePairConfig::UNKNOWN_CANDIDATE_TYPE:
       return IceCandidateType::kUnknown;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return IceCandidateType::kUnknown;
 }
 
@@ -240,7 +240,7 @@
     case rtclog::IceCandidatePairConfig::UNKNOWN_PROTOCOL:
       return IceCandidatePairProtocol::kUnknown;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return IceCandidatePairProtocol::kUnknown;
 }
 
@@ -254,7 +254,7 @@
     case rtclog::IceCandidatePairConfig::UNKNOWN_ADDRESS_FAMILY:
       return IceCandidatePairAddressFamily::kUnknown;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return IceCandidatePairAddressFamily::kUnknown;
 }
 
@@ -274,7 +274,7 @@
     case rtclog::IceCandidatePairConfig::UNKNOWN_NETWORK_TYPE:
       return IceCandidateNetworkType::kUnknown;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return IceCandidateNetworkType::kUnknown;
 }
 
@@ -290,7 +290,7 @@
     case rtclog::IceCandidatePairEvent::CHECK_RESPONSE_RECEIVED:
       return IceCandidatePairEventType::kCheckResponseReceived;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return IceCandidatePairEventType::kCheckSent;
 }
 
@@ -311,7 +311,7 @@
                            "VideoCodecType::kVideoCodecMultiplex";
       return VideoCodecType::kVideoCodecMultiplex;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return VideoCodecType::kVideoCodecMultiplex;
 }
 
@@ -768,7 +768,7 @@
     case rtclog2::DelayBasedBweUpdates::BWE_UNKNOWN_STATE:
       break;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return BandwidthUsage::kBwNormal;
 }
 
@@ -784,7 +784,7 @@
     case rtclog2::BweProbeResultFailure::UNKNOWN:
       break;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return ProbeFailureReason::kTimeout;
 }
 
@@ -802,10 +802,10 @@
     case rtclog2::DtlsTransportStateEvent::DTLS_TRANSPORT_FAILED:
       return DtlsTransportState::kFailed;
     case rtclog2::DtlsTransportStateEvent::UNKNOWN_DTLS_TRANSPORT_STATE:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return DtlsTransportState::kNumValues;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return DtlsTransportState::kNumValues;
 }
 
@@ -823,7 +823,7 @@
     case rtclog2::IceCandidatePairConfig::UNKNOWN_CONFIG_TYPE:
       break;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return IceCandidatePairConfigType::kAdded;
 }
 
@@ -841,7 +841,7 @@
     case rtclog2::IceCandidatePairConfig::UNKNOWN_CANDIDATE_TYPE:
       return IceCandidateType::kUnknown;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return IceCandidateType::kUnknown;
 }
 
@@ -859,7 +859,7 @@
     case rtclog2::IceCandidatePairConfig::UNKNOWN_PROTOCOL:
       return IceCandidatePairProtocol::kUnknown;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return IceCandidatePairProtocol::kUnknown;
 }
 
@@ -873,7 +873,7 @@
     case rtclog2::IceCandidatePairConfig::UNKNOWN_ADDRESS_FAMILY:
       return IceCandidatePairAddressFamily::kUnknown;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return IceCandidatePairAddressFamily::kUnknown;
 }
 
@@ -893,7 +893,7 @@
     case rtclog2::IceCandidatePairConfig::UNKNOWN_NETWORK_TYPE:
       return IceCandidateNetworkType::kUnknown;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return IceCandidateNetworkType::kUnknown;
 }
 
@@ -911,7 +911,7 @@
     case rtclog2::IceCandidatePairEvent::UNKNOWN_CHECK_TYPE:
       break;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return IceCandidatePairEventType::kCheckSent;
 }
 
@@ -1892,7 +1892,7 @@
   } else if (pr_event.result() == rtclog::BweProbeResult::TIMEOUT) {
     res.failure_reason = ProbeFailureReason::kTimeout;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   RTC_PARSE_CHECK_OR_RETURN(!pr_event.has_bitrate_bps());
 
@@ -2360,7 +2360,7 @@
   } else if (stream.frame_decoded_events_size() == 1) {
     return StoreFrameDecodedEvents(stream.frame_decoded_events(0));
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return ParseStatus::Success();
   }
 }
diff --git a/logging/rtc_event_log/rtc_event_log_unittest.cc b/logging/rtc_event_log/rtc_event_log_unittest.cc
index 72e15fc..e0fe46a 100644
--- a/logging/rtc_event_log/rtc_event_log_unittest.cc
+++ b/logging/rtc_event_log/rtc_event_log_unittest.cc
@@ -546,7 +546,7 @@
     }
     selection -= count.generic_acks_received;
 
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 
   event_log->StopLogging();
diff --git a/logging/rtc_event_log/rtc_event_log_unittest_helper.cc b/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
index 0960c98..e77a671 100644
--- a/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
+++ b/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
@@ -462,7 +462,7 @@
       return std::make_unique<RtcEventRtcpPacketIncoming>(buffer);
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       rtc::Buffer buffer;
       return std::make_unique<RtcEventRtcpPacketIncoming>(buffer);
   }
@@ -531,7 +531,7 @@
       return std::make_unique<RtcEventRtcpPacketOutgoing>(buffer);
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       rtc::Buffer buffer;
       return std::make_unique<RtcEventRtcpPacketOutgoing>(buffer);
   }
diff --git a/media/base/fake_frame_source.cc b/media/base/fake_frame_source.cc
index 8a05536..61bc585 100644
--- a/media/base/fake_frame_source.cc
+++ b/media/base/fake_frame_source.cc
@@ -52,7 +52,8 @@
     case webrtc::kVideoRotation_270:
       return GetFrame(height_, width_, webrtc::kVideoRotation_0, interval_us_);
   }
-  RTC_NOTREACHED() << "Invalid rotation value: " << static_cast<int>(rotation_);
+  RTC_DCHECK_NOTREACHED() << "Invalid rotation value: "
+                          << static_cast<int>(rotation_);
   // Without this return, the Windows Visual Studio compiler complains
   // "not all control paths return a value".
   return GetFrame();
diff --git a/media/base/rtp_utils.cc b/media/base/rtp_utils.cc
index 97a3c4c..c630cbc 100644
--- a/media/base/rtp_utils.cc
+++ b/media/base/rtp_utils.cc
@@ -58,7 +58,7 @@
   //   |  ID   | len=2 |              absolute send time               |
   //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   if (length != kAbsSendTimeExtensionLen) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return;
   }
 
@@ -84,7 +84,7 @@
   // ROC (rollover counter) is at the beginning of the auth tag.
   const size_t kRocLength = 4;
   if (tag_length < kRocLength || tag_length > length) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return;
   }
 
@@ -105,7 +105,7 @@
                        auth_required_length, output, sizeof(output));
 
   if (result < tag_length) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return;
   }
 
@@ -372,7 +372,7 @@
   size_t rtp_start_pos;
   size_t rtp_length;
   if (!UnwrapTurnPacket(data, length, &rtp_start_pos, &rtp_length)) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return false;
   }
 
@@ -380,7 +380,7 @@
   auto packet = rtc::MakeArrayView(data + rtp_start_pos, rtp_length);
   if (!webrtc::IsRtpPacket(packet) ||
       !ValidateRtpHeader(data + rtp_start_pos, rtp_length, nullptr)) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return false;
   }
 
diff --git a/media/engine/fake_webrtc_call.cc b/media/engine/fake_webrtc_call.cc
index 62bcab9..7b9174d 100644
--- a/media/engine/fake_webrtc_call.cc
+++ b/media/engine/fake_webrtc_call.cc
@@ -413,7 +413,7 @@
 }
 
 void FakeFlexfecReceiveStream::OnRtpPacket(const webrtc::RtpPacketReceived&) {
-  RTC_NOTREACHED() << "Not implemented.";
+  RTC_DCHECK_NOTREACHED() << "Not implemented.";
 }
 
 FakeCall::FakeCall()
diff --git a/media/engine/internal_decoder_factory.cc b/media/engine/internal_decoder_factory.cc
index c309318..a9f30c2 100644
--- a/media/engine/internal_decoder_factory.cc
+++ b/media/engine/internal_decoder_factory.cc
@@ -73,7 +73,7 @@
       absl::EqualsIgnoreCase(format.name, cricket::kAv1CodecName))
     return CreateLibaomAv1Decoder();
 
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 
diff --git a/media/engine/simulcast.cc b/media/engine/simulcast.cc
index 6d65dd2..3909685 100644
--- a/media/engine/simulcast.cc
+++ b/media/engine/simulcast.cc
@@ -175,7 +175,7 @@
       return i;
     }
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return -1;
 }
 
diff --git a/media/engine/simulcast_encoder_adapter_unittest.cc b/media/engine/simulcast_encoder_adapter_unittest.cc
index beca9d4..f28a1af 100644
--- a/media/engine/simulcast_encoder_adapter_unittest.cc
+++ b/media/engine/simulcast_encoder_adapter_unittest.cc
@@ -992,7 +992,7 @@
     if (allow_to_i420_) {
       return I420Buffer::Create(width_, height_);
     } else {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
     return nullptr;
   }
diff --git a/modules/audio_coding/acm2/acm_receiver_unittest.cc b/modules/audio_coding/acm2/acm_receiver_unittest.cc
index 2338a53..e73acc2 100644
--- a/modules/audio_coding/acm2/acm_receiver_unittest.cc
+++ b/modules/audio_coding/acm2/acm_receiver_unittest.cc
@@ -119,7 +119,7 @@
         rtp_header_,
         rtc::ArrayView<const uint8_t>(payload_data, payload_len_bytes));
     if (ret_val < 0) {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return -1;
     }
     rtp_header_.sequenceNumber++;
diff --git a/modules/audio_coding/acm2/acm_resampler.cc b/modules/audio_coding/acm2/acm_resampler.cc
index 7c7393d..e307c6c 100644
--- a/modules/audio_coding/acm2/acm_resampler.cc
+++ b/modules/audio_coding/acm2/acm_resampler.cc
@@ -30,7 +30,7 @@
   size_t in_length = in_freq_hz * num_audio_channels / 100;
   if (in_freq_hz == out_freq_hz) {
     if (out_capacity_samples < in_length) {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return -1;
     }
     memcpy(out_audio, in_audio, in_length * sizeof(int16_t));
diff --git a/modules/audio_coding/acm2/audio_coding_module.cc b/modules/audio_coding/acm2/audio_coding_module.cc
index b742a82..e2081e2 100644
--- a/modules/audio_coding/acm2/audio_coding_module.cc
+++ b/modules/audio_coding/acm2/audio_coding_module.cc
@@ -344,13 +344,13 @@
 int AudioCodingModuleImpl::Add10MsDataInternal(const AudioFrame& audio_frame,
                                                InputData* input_data) {
   if (audio_frame.samples_per_channel_ == 0) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     RTC_LOG(LS_ERROR) << "Cannot Add 10 ms audio, payload length is zero";
     return -1;
   }
 
   if (audio_frame.sample_rate_hz_ > kMaxInputSampleRateHz) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     RTC_LOG(LS_ERROR) << "Cannot Add 10 ms audio, input frequency not valid";
     return -1;
   }
diff --git a/modules/audio_coding/acm2/call_statistics.cc b/modules/audio_coding/acm2/call_statistics.cc
index 0aad594..9f3bdad 100644
--- a/modules/audio_coding/acm2/call_statistics.cc
+++ b/modules/audio_coding/acm2/call_statistics.cc
@@ -45,7 +45,7 @@
     }
     case AudioFrame::kUndefined: {
       // If the audio is decoded by NetEq, `kUndefined` is not an option.
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
   }
 }
diff --git a/modules/audio_coding/audio_network_adaptor/controller_manager.cc b/modules/audio_coding/audio_network_adaptor/controller_manager.cc
index 6708bc0..87759c3 100644
--- a/modules/audio_coding/audio_network_adaptor/controller_manager.cc
+++ b/modules/audio_coding/audio_network_adaptor/controller_manager.cc
@@ -265,7 +265,7 @@
         break;
       case audio_network_adaptor::config::Controller::kFecControllerRplrBased:
         // FecControllerRplrBased has been removed and can't be used anymore.
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         continue;
       case audio_network_adaptor::config::Controller::kFrameLengthController:
         controller = CreateFrameLengthController(
@@ -293,7 +293,7 @@
             encoder_frame_lengths_ms);
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
     if (controller_config.has_scoring_point()) {
       auto& scoring_point = controller_config.scoring_point();
@@ -321,7 +321,7 @@
   }
 
 #else
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 #endif  // WEBRTC_ENABLE_PROTOBUF
 }
diff --git a/modules/audio_coding/audio_network_adaptor/debug_dump_writer.cc b/modules/audio_coding/audio_network_adaptor/debug_dump_writer.cc
index 669cf5e..2616706 100644
--- a/modules/audio_coding/audio_network_adaptor/debug_dump_writer.cc
+++ b/modules/audio_coding/audio_network_adaptor/debug_dump_writer.cc
@@ -76,7 +76,7 @@
   dump_file_ = FileWrapper(file_handle);
   RTC_CHECK(dump_file_.is_open());
 #else
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 #endif
 }
 
diff --git a/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.cc b/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.cc
index 936e224..c5e5fa7 100644
--- a/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.cc
+++ b/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.cc
@@ -26,7 +26,7 @@
   absl::optional<float> GetAverage() override { return last_sample_; }
 
   bool SetTimeConstantMs(int time_constant_ms) override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return false;
   }
 
diff --git a/modules/audio_coding/codecs/isac/isac_webrtc_api_test.cc b/modules/audio_coding/codecs/isac/isac_webrtc_api_test.cc
index be8d0c6..cafca75 100644
--- a/modules/audio_coding/codecs/isac/isac_webrtc_api_test.cc
+++ b/modules/audio_coding/codecs/isac/isac_webrtc_api_test.cc
@@ -51,8 +51,8 @@
       filename = test::ResourcePath("audio_coding/testfile32kHz", "pcm");
       break;
     default:
-      RTC_NOTREACHED() << "No test file available for " << sample_rate_hz
-                       << " Hz.";
+      RTC_DCHECK_NOTREACHED()
+          << "No test file available for " << sample_rate_hz << " Hz.";
   }
   auto pcm_file = std::make_unique<PCMFile>();
   pcm_file->ReadStereo(false);
diff --git a/modules/audio_coding/codecs/legacy_encoded_audio_frame_unittest.cc b/modules/audio_coding/codecs/legacy_encoded_audio_frame_unittest.cc
index 1d0c7fe..f81aeee 100644
--- a/modules/audio_coding/codecs/legacy_encoded_audio_frame_unittest.cc
+++ b/modules/audio_coding/codecs/legacy_encoded_audio_frame_unittest.cc
@@ -88,7 +88,7 @@
         samples_per_ms_ = 8;
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
     }
   }
diff --git a/modules/audio_coding/include/audio_coding_module.h b/modules/audio_coding/include/audio_coding_module.h
index 9b1dce8..003d966 100644
--- a/modules/audio_coding/include/audio_coding_module.h
+++ b/modules/audio_coding/include/audio_coding_module.h
@@ -54,7 +54,7 @@
                            uint32_t timestamp,
                            const uint8_t* payload_data,
                            size_t payload_len_bytes) {
-    RTC_NOTREACHED() << "This method must be overridden, or not used.";
+    RTC_DCHECK_NOTREACHED() << "This method must be overridden, or not used.";
     return -1;
   }
 };
diff --git a/modules/audio_coding/neteq/dsp_helper.cc b/modules/audio_coding/neteq/dsp_helper.cc
index 54ec556..a979f94 100644
--- a/modules/audio_coding/neteq/dsp_helper.cc
+++ b/modules/audio_coding/neteq/dsp_helper.cc
@@ -354,7 +354,7 @@
       break;
     }
     default: {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return -1;
     }
   }
diff --git a/modules/audio_coding/neteq/dtmf_tone_generator.cc b/modules/audio_coding/neteq/dtmf_tone_generator.cc
index 49cbf8f..9061e27 100644
--- a/modules/audio_coding/neteq/dtmf_tone_generator.cc
+++ b/modules/audio_coding/neteq/dtmf_tone_generator.cc
@@ -119,7 +119,7 @@
   } else if (fs == 48000) {
     fs_index = 3;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     fs_index = 1;  // Default to 8000 Hz.
   }
 
diff --git a/modules/audio_coding/neteq/merge.cc b/modules/audio_coding/neteq/merge.cc
index ca5ec22..22cf6a7 100644
--- a/modules/audio_coding/neteq/merge.cc
+++ b/modules/audio_coding/neteq/merge.cc
@@ -372,7 +372,7 @@
   while (((best_correlation_index + input_length) <
           (timestamps_per_call_ + expand_->overlap_length())) ||
          ((best_correlation_index + input_length) < start_position)) {
-    RTC_NOTREACHED();                         // Should never happen.
+    RTC_DCHECK_NOTREACHED();                  // Should never happen.
     best_correlation_index += expand_period;  // Jump one lag ahead.
   }
   return best_correlation_index;
diff --git a/modules/audio_coding/neteq/neteq_impl.cc b/modules/audio_coding/neteq/neteq_impl.cc
index 6107b17..7e3c4ef 100644
--- a/modules/audio_coding/neteq/neteq_impl.cc
+++ b/modules/audio_coding/neteq/neteq_impl.cc
@@ -221,7 +221,7 @@
       break;
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   if (!vad_enabled) {
     // Always set kVadUnknown when receive VAD is inactive.
@@ -894,7 +894,7 @@
     }
     case Operation::kUndefined: {
       RTC_LOG(LS_ERROR) << "Invalid operation kUndefined.";
-      RTC_NOTREACHED();  // This should not happen.
+      RTC_DCHECK_NOTREACHED();  // This should not happen.
       last_mode_ = Mode::kError;
       return kInvalidOperation;
     }
@@ -1057,7 +1057,7 @@
       // Don't use this packet, discard it.
       if (packet_buffer_->DiscardNextPacket(stats_.get()) !=
           PacketBuffer::kOK) {
-        RTC_NOTREACHED();  // Must be ok by design.
+        RTC_DCHECK_NOTREACHED();  // Must be ok by design.
       }
       // Check buffer again.
       if (!new_codec_) {
@@ -1877,7 +1877,7 @@
   //    // it must be copied to the speech buffer.
   //    // TODO(hlundin): This code seems incorrect. (Legacy.) Write test and
   //    // verify correct operation.
-  //    RTC_NOTREACHED();
+  //    RTC_DCHECK_NOTREACHED();
   //    // Must generate enough data to replace all of the `sync_buffer_`
   //    // "future".
   //    int required_length = sync_buffer_->FutureLength();
@@ -1967,7 +1967,8 @@
     next_packet = nullptr;
     if (!packet) {
       RTC_LOG(LS_ERROR) << "Should always be able to extract a packet here";
-      RTC_NOTREACHED();  // Should always be able to extract a packet here.
+      RTC_DCHECK_NOTREACHED();  // Should always be able to extract a packet
+                                // here.
       return -1;
     }
     const uint64_t waiting_time_ms = packet->waiting_time->ElapsedMs();
@@ -2001,7 +2002,7 @@
     } else if (!has_cng_packet) {
       RTC_LOG(LS_WARNING) << "Unknown payload type "
                           << static_cast<int>(packet->payload_type);
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
 
     if (packet_duration == 0) {
diff --git a/modules/audio_coding/neteq/sync_buffer.cc b/modules/audio_coding/neteq/sync_buffer.cc
index 80e1691..7d7cac7 100644
--- a/modules/audio_coding/neteq/sync_buffer.cc
+++ b/modules/audio_coding/neteq/sync_buffer.cc
@@ -28,7 +28,7 @@
     next_index_ -= samples_added;
   } else {
     // This means that we are pushing out future data that was never used.
-    //    RTC_NOTREACHED();
+    //    RTC_DCHECK_NOTREACHED();
     // TODO(hlundin): This assert must be disabled to support 60 ms frames.
     // This should not happen even for 60 ms frames, but it does. Investigate
     // why.
diff --git a/modules/audio_coding/neteq/tools/rtp_encode.cc b/modules/audio_coding/neteq/tools/rtp_encode.cc
index 204f169..ee392f2 100644
--- a/modules/audio_coding/neteq/tools/rtp_encode.cc
+++ b/modules/audio_coding/neteq/tools/rtp_encode.cc
@@ -191,7 +191,7 @@
       config.sample_rate_hz = 48000;
       return config;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return config;
   }
 }
@@ -242,7 +242,7 @@
           GetCodecConfig<AudioEncoderIsac>(), payload_type);
     }
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 
@@ -259,7 +259,7 @@
       case 48000:
         return 100;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
     return 0;
   };
diff --git a/modules/audio_device/audio_device_data_observer.cc b/modules/audio_device/audio_device_data_observer.cc
index be78fd1..f655c5a 100644
--- a/modules/audio_device/audio_device_data_observer.cc
+++ b/modules/audio_device/audio_device_data_observer.cc
@@ -110,7 +110,7 @@
                       void* audio_data,
                       int64_t* elapsed_time_ms,
                       int64_t* ntp_time_ms) override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 
   // Override AudioDeviceModule's RegisterAudioCallback method to remember the
diff --git a/modules/audio_device/audio_device_unittest.cc b/modules/audio_device/audio_device_unittest.cc
index a0ec149..51a8575 100644
--- a/modules/audio_device/audio_device_unittest.cc
+++ b/modules/audio_device/audio_device_unittest.cc
@@ -176,7 +176,7 @@
               (static_cast<int32_t>(buffer[2 * i]) + buffer[2 * i + 1]) / 2;
         }
       } else {
-        RTC_NOTREACHED() << "Required conversion is not support";
+        RTC_DCHECK_NOTREACHED() << "Required conversion is not support";
       }
       fifo_.pop_front();
     }
diff --git a/modules/audio_device/win/audio_device_core_win.cc b/modules/audio_device/win/audio_device_core_win.cc
index f1b6b93..6365d9f 100644
--- a/modules/audio_device/win/audio_device_core_win.cc
+++ b/modules/audio_device/win/audio_device_core_win.cc
@@ -3009,7 +3009,7 @@
       if (FAILED(hr)) {
         _TraceCOMError(hr);
         keepRecording = false;
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
       }
 
@@ -3021,7 +3021,7 @@
       if (FAILED(hr)) {
         _TraceCOMError(hr);
         keepRecording = false;
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
       }
 
@@ -3046,7 +3046,7 @@
       if (FAILED(hr)) {
         _TraceCOMError(hr);
         keepRecording = false;
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
       }
 
diff --git a/modules/audio_device/win/core_audio_utility_win.h b/modules/audio_device/win/core_audio_utility_win.h
index afadee5..fa7b198 100644
--- a/modules/audio_device/win/core_audio_utility_win.h
+++ b/modules/audio_device/win/core_audio_utility_win.h
@@ -244,7 +244,7 @@
   void Close() {
     if (handle_) {
       if (!::CloseHandle(handle_)) {
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
       }
       handle_ = nullptr;
     }
diff --git a/modules/audio_processing/aec3/aec3_fft.cc b/modules/audio_processing/aec3/aec3_fft.cc
index 8dfa183..9cc8016 100644
--- a/modules/audio_processing/aec3/aec3_fft.cc
+++ b/modules/audio_processing/aec3/aec3_fft.cc
@@ -101,10 +101,10 @@
                      [](float a, float b) { return a * b; });
       break;
     case Window::kSqrtHanning:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 
   Fft(&fft, X);
@@ -125,7 +125,7 @@
       std::copy(x.begin(), x.end(), fft.begin() + x_old.size());
       break;
     case Window::kHanning:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
     case Window::kSqrtHanning:
       std::transform(x_old.begin(), x_old.end(), std::begin(kSqrtHanning128),
@@ -135,7 +135,7 @@
                      fft.begin() + x_old.size(), std::multiplies<float>());
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 
   Fft(&fft, X);
diff --git a/modules/audio_processing/aec3/echo_canceller3.cc b/modules/audio_processing/aec3/echo_canceller3.cc
index dfa932f..6316a2b 100644
--- a/modules/audio_processing/aec3/echo_canceller3.cc
+++ b/modules/audio_processing/aec3/echo_canceller3.cc
@@ -797,7 +797,7 @@
   if (linear_output && !linear_output_framer_) {
     RTC_LOG(LS_ERROR) << "Trying to retrieve the linear AEC output without "
                          "properly configuring AEC3.";
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 
   // Report capture call in the metrics and periodically update API call
diff --git a/modules/audio_processing/aec3/echo_remover_metrics.cc b/modules/audio_processing/aec3/echo_remover_metrics.cc
index 1ceb329..c3fc807 100644
--- a/modules/audio_processing/aec3/echo_remover_metrics.cc
+++ b/modules/audio_processing/aec3/echo_remover_metrics.cc
@@ -113,7 +113,7 @@
         ResetMetrics();
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
     }
   }
diff --git a/modules/audio_processing/aec3/matched_filter.cc b/modules/audio_processing/aec3/matched_filter.cc
index 1721e9c..c6747cb 100644
--- a/modules/audio_processing/aec3/matched_filter.cc
+++ b/modules/audio_processing/aec3/matched_filter.cc
@@ -442,7 +442,7 @@
         data_dumper_->DumpRaw("aec3_correlator_9_h", filters_[9]);
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
 
     alignment_shift += filter_intra_lag_shift_;
diff --git a/modules/audio_processing/aec3/reverb_decay_estimator.cc b/modules/audio_processing/aec3/reverb_decay_estimator.cc
index 24f579b..2daf376 100644
--- a/modules/audio_processing/aec3/reverb_decay_estimator.cc
+++ b/modules/audio_processing/aec3/reverb_decay_estimator.cc
@@ -296,7 +296,7 @@
 float ReverbDecayEstimator::LateReverbLinearRegressor::Estimate() {
   RTC_DCHECK(EstimateAvailable());
   if (nn_ == 0.f) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return 0.f;
   }
   return nz_ / nn_;
diff --git a/modules/audio_processing/aec_dump/aec_dump_impl.cc b/modules/audio_processing/aec_dump/aec_dump_impl.cc
index 4497d57..160583e 100644
--- a/modules/audio_processing/aec_dump/aec_dump_impl.cc
+++ b/modules/audio_processing/aec_dump/aec_dump_impl.cc
@@ -230,7 +230,7 @@
       break;
     }
     case AudioProcessing::RuntimeSetting::Type::kNotSpecified:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
   worker_queue_->PostTask(std::move(task));
diff --git a/modules/audio_processing/aec_dump/write_to_file_task.cc b/modules/audio_processing/aec_dump/write_to_file_task.cc
index 4839a09..cd083d2 100644
--- a/modules/audio_processing/aec_dump/write_to_file_task.cc
+++ b/modules/audio_processing/aec_dump/write_to_file_task.cc
@@ -55,10 +55,10 @@
 
   // Write message preceded by its size.
   if (!debug_file_->Write(&event_byte_size, sizeof(int32_t))) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   if (!debug_file_->Write(event_string.data(), event_string.length())) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   return true;  // Delete task from queue at once.
 }
diff --git a/modules/audio_processing/agc/agc.cc b/modules/audio_processing/agc/agc.cc
index a89ae11..e36d32c 100644
--- a/modules/audio_processing/agc/agc.cc
+++ b/modules/audio_processing/agc/agc.cc
@@ -48,7 +48,7 @@
 
 bool Agc::GetRmsErrorDb(int* error) {
   if (!error) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return false;
   }
 
diff --git a/modules/audio_processing/agc/clipping_predictor.cc b/modules/audio_processing/agc/clipping_predictor.cc
index 982bbca..58b3a27 100644
--- a/modules/audio_processing/agc/clipping_predictor.cc
+++ b/modules/audio_processing/agc/clipping_predictor.cc
@@ -377,7 +377,7 @@
           config.reference_window_delay, config.clipping_threshold,
           /*adaptive_step_estimation=*/false);
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 }  // namespace webrtc
diff --git a/modules/audio_processing/agc2/interpolated_gain_curve.cc b/modules/audio_processing/agc2/interpolated_gain_curve.cc
index ac7fbec..b522ec3 100644
--- a/modules/audio_processing/agc2/interpolated_gain_curve.cc
+++ b/modules/audio_processing/agc2/interpolated_gain_curve.cc
@@ -115,7 +115,7 @@
       break;
     }
     default: {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
   }
 }
diff --git a/modules/audio_processing/audio_processing_impl.cc b/modules/audio_processing/audio_processing_impl.cc
index 169ffe4..8a3ddf5 100644
--- a/modules/audio_processing/audio_processing_impl.cc
+++ b/modules/audio_processing/audio_processing_impl.cc
@@ -61,7 +61,7 @@
       return true;
   }
 
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return false;
 }
 
@@ -97,7 +97,7 @@
       return rate;
     }
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return uppermost_native_rate;
 }
 
@@ -702,12 +702,12 @@
       return enqueueing_successful;
     }
     case RuntimeSetting::Type::kNotSpecified:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return true;
   }
   // The language allows the enum to have a non-enumerator
   // value. Check that this doesn't happen.
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return true;
 }
 
@@ -878,13 +878,13 @@
         break;
       }
       case RuntimeSetting::Type::kPlayoutAudioDeviceChange:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
       case RuntimeSetting::Type::kCustomRenderProcessingRuntimeSetting:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
       case RuntimeSetting::Type::kNotSpecified:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
       case RuntimeSetting::Type::kCaptureOutputUsed:
         bool value;
@@ -928,7 +928,7 @@
       case RuntimeSetting::Type::kCaptureFixedPostGain:    // fall-through
       case RuntimeSetting::Type::kCaptureOutputUsed:       // fall-through
       case RuntimeSetting::Type::kNotSpecified:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
     }
   }
@@ -1592,7 +1592,7 @@
     return true;
   }
   RTC_LOG(LS_ERROR) << "No linear AEC output available";
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return false;
 }
 
diff --git a/modules/audio_processing/audio_processing_performance_unittest.cc b/modules/audio_processing/audio_processing_performance_unittest.cc
index 9a5e374..67ddcd7 100644
--- a/modules/audio_processing/audio_processing_performance_unittest.cc
+++ b/modules/audio_processing/audio_processing_performance_unittest.cc
@@ -367,7 +367,7 @@
 
     // Should not be reached, but the return statement is needed for the code to
     // build successfully on Android.
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return false;
   }
 
diff --git a/modules/audio_processing/audio_processing_unittest.cc b/modules/audio_processing/audio_processing_unittest.cc
index cfb19f9..2a91b6a 100644
--- a/modules/audio_processing/audio_processing_unittest.cc
+++ b/modules/audio_processing/audio_processing_unittest.cc
@@ -105,7 +105,7 @@
     case AudioProcessing::kStereoAndKeyboard:
       return 3;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -272,7 +272,7 @@
   } else if (num_output_channels == 2) {
     ss << "stereo";
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   ss << output_rate / 1000;
   if (num_reverse_output_channels == 1) {
@@ -280,7 +280,7 @@
   } else if (num_reverse_output_channels == 2) {
     ss << "_rstereo";
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   ss << reverse_output_rate / 1000;
   ss << "_d" << file_direction << "_pcm";
diff --git a/modules/audio_processing/common.h b/modules/audio_processing/common.h
index 2c88c4e..e14279e 100644
--- a/modules/audio_processing/common.h
+++ b/modules/audio_processing/common.h
@@ -29,7 +29,7 @@
     case AudioProcessing::kStereoAndKeyboard:
       return 2;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
diff --git a/modules/audio_processing/echo_control_mobile_impl.cc b/modules/audio_processing/echo_control_mobile_impl.cc
index 8116608..667d6bf 100644
--- a/modules/audio_processing/echo_control_mobile_impl.cc
+++ b/modules/audio_processing/echo_control_mobile_impl.cc
@@ -36,7 +36,7 @@
     case EchoControlMobileImpl::kLoudSpeakerphone:
       return 4;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return -1;
 }
 
diff --git a/modules/audio_processing/gain_control_impl.cc b/modules/audio_processing/gain_control_impl.cc
index b5454c0..3fac1f7 100644
--- a/modules/audio_processing/gain_control_impl.cc
+++ b/modules/audio_processing/gain_control_impl.cc
@@ -35,7 +35,7 @@
     case GainControl::kFixedDigital:
       return kAgcModeFixedDigital;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return -1;
 }
 
diff --git a/modules/audio_processing/high_pass_filter.cc b/modules/audio_processing/high_pass_filter.cc
index bff7209..3b4740f 100644
--- a/modules/audio_processing/high_pass_filter.cc
+++ b/modules/audio_processing/high_pass_filter.cc
@@ -44,9 +44,9 @@
     case 48000:
       return kHighPassFilterCoefficients48kHz;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return kHighPassFilterCoefficients16kHz;
 }
 
diff --git a/modules/audio_processing/ns/suppression_params.cc b/modules/audio_processing/ns/suppression_params.cc
index 9a6bd5a..7bf1834 100644
--- a/modules/audio_processing/ns/suppression_params.cc
+++ b/modules/audio_processing/ns/suppression_params.cc
@@ -42,7 +42,7 @@
       use_attenuation_adjustment = true;
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 }
 
diff --git a/modules/audio_processing/test/bitexactness_tools.cc b/modules/audio_processing/test/bitexactness_tools.cc
index f245c2c..0464345 100644
--- a/modules/audio_processing/test/bitexactness_tools.cc
+++ b/modules/audio_processing/test/bitexactness_tools.cc
@@ -33,7 +33,7 @@
     case 48000:
       return ResourcePath("far48_stereo", "pcm");
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   return "";
 }
@@ -49,7 +49,7 @@
     case 48000:
       return ResourcePath("near48_stereo", "pcm");
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   return "";
 }
diff --git a/modules/audio_processing/test/fake_recording_device.cc b/modules/audio_processing/test/fake_recording_device.cc
index 5202014..3a35ee9 100644
--- a/modules/audio_processing/test/fake_recording_device.cc
+++ b/modules/audio_processing/test/fake_recording_device.cc
@@ -148,7 +148,7 @@
       worker_ = std::make_unique<FakeRecordingDeviceAgc1>(initial_mic_level);
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
 }
diff --git a/modules/audio_processing/transient/transient_suppressor_impl.cc b/modules/audio_processing/transient/transient_suppressor_impl.cc
index 8e43d78..f8161f6 100644
--- a/modules/audio_processing/transient/transient_suppressor_impl.cc
+++ b/modules/audio_processing/transient/transient_suppressor_impl.cc
@@ -102,7 +102,7 @@
   detector_.reset(new TransientDetector(detection_rate_hz));
   data_length_ = sample_rate_hz * ts::kChunkSizeMs / 1000;
   if (data_length_ > analysis_length_) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return -1;
   }
   buffer_delay_ = analysis_length_ - data_length_;
diff --git a/modules/audio_processing/voice_detection.cc b/modules/audio_processing/voice_detection.cc
index e6c92ae..1a633e2 100644
--- a/modules/audio_processing/voice_detection.cc
+++ b/modules/audio_processing/voice_detection.cc
@@ -54,7 +54,7 @@
       mode = 0;
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
   int error = WebRtcVad_set_mode(vad_->state(), mode);
diff --git a/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.cc b/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.cc
index c7f53c6..33974dc 100644
--- a/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.cc
+++ b/modules/congestion_controller/goog_cc/loss_based_bandwidth_estimation.cc
@@ -36,7 +36,7 @@
   }
   auto rtt_range = config.increase_high_rtt.Get() - config.increase_low_rtt;
   if (rtt_range <= TimeDelta::Zero()) {
-    RTC_NOTREACHED();  // Only on misconfiguration.
+    RTC_DCHECK_NOTREACHED();  // Only on misconfiguration.
     return config.min_increase_factor;
   }
   auto rtt_offset = rtt - config.increase_low_rtt;
@@ -57,7 +57,7 @@
                          DataRate loss_bandwidth_balance,
                          double exponent) {
   if (exponent <= 0) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return DataRate::Infinity();
   }
   if (loss < 1e-5)
@@ -69,7 +69,7 @@
   // Use the convention that exponential window length (which is really
   // infinite) is the time it takes to dampen to 1/e.
   if (window <= TimeDelta::Zero()) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return 1.0f;
   }
   return 1.0f - exp(interval / window * -1.0);
@@ -134,7 +134,7 @@
     const std::vector<PacketResult>& packet_results,
     Timestamp at_time) {
   if (packet_results.empty()) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return;
   }
   int loss_count = 0;
diff --git a/modules/desktop_capture/cropping_window_capturer_win.cc b/modules/desktop_capture/cropping_window_capturer_win.cc
index bbd3553..64d9219 100644
--- a/modules/desktop_capture/cropping_window_capturer_win.cc
+++ b/modules/desktop_capture/cropping_window_capturer_win.cc
@@ -118,7 +118,7 @@
       // firing an assert when enabled, report that the selected window isn't
       // topmost to avoid inadvertent capture of other windows.
       RTC_LOG(LS_ERROR) << "Failed to enumerate windows: " << lastError;
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return false;
     }
   }
diff --git a/modules/desktop_capture/desktop_frame_rotation.cc b/modules/desktop_capture/desktop_frame_rotation.cc
index daef385..f2745cf 100644
--- a/modules/desktop_capture/desktop_frame_rotation.cc
+++ b/modules/desktop_capture/desktop_frame_rotation.cc
@@ -28,7 +28,7 @@
     case Rotation::CLOCK_WISE_270:
       return libyuv::kRotate270;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return libyuv::kRotate0;
 }
 
@@ -54,7 +54,7 @@
     case Rotation::CLOCK_WISE_270:
       return Rotation::CLOCK_WISE_90;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return Rotation::CLOCK_WISE_0;
 }
 
@@ -67,7 +67,7 @@
     case Rotation::CLOCK_WISE_270:
       return DesktopSize(size.height(), size.width());
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return DesktopSize();
 }
 
@@ -86,7 +86,7 @@
       return DesktopRect::MakeXYWH(rect.top(), size.width() - rect.right(),
                                    rect.height(), rect.width());
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return DesktopRect();
 }
 
diff --git a/modules/desktop_capture/linux/base_capturer_pipewire.cc b/modules/desktop_capture/linux/base_capturer_pipewire.cc
index 54ff575..3be24f2 100644
--- a/modules/desktop_capture/linux/base_capturer_pipewire.cc
+++ b/modules/desktop_capture/linux/base_capturer_pipewire.cc
@@ -170,7 +170,7 @@
  public:
   Scoped() {}
   explicit Scoped(T* val) { ptr_ = val; }
-  ~Scoped() { RTC_NOTREACHED(); }
+  ~Scoped() { RTC_DCHECK_NOTREACHED(); }
 
   T* operator->() { return ptr_; }
 
diff --git a/modules/desktop_capture/screen_drawer_linux.cc b/modules/desktop_capture/screen_drawer_linux.cc
index afd29ce..8231265 100644
--- a/modules/desktop_capture/screen_drawer_linux.cc
+++ b/modules/desktop_capture/screen_drawer_linux.cc
@@ -63,7 +63,7 @@
   if (!XGetWindowAttributes(display_->display(),
                             RootWindow(display_->display(), screen_num_),
                             &root_attributes)) {
-    RTC_NOTREACHED() << "Failed to get root window size.";
+    RTC_DCHECK_NOTREACHED() << "Failed to get root window size.";
   }
   window_ = XCreateSimpleWindow(
       display_->display(), RootWindow(display_->display(), screen_num_), 0, 0,
@@ -85,7 +85,7 @@
   if (!XTranslateCoordinates(display_->display(), window_,
                              RootWindow(display_->display(), screen_num_), 0, 0,
                              &x, &y, &child)) {
-    RTC_NOTREACHED() << "Failed to get window position.";
+    RTC_DCHECK_NOTREACHED() << "Failed to get window position.";
   }
   // Some window manager does not allow a window to cover two or more monitors.
   // So if the window is on the first monitor of a two-monitor system, the
diff --git a/modules/desktop_capture/screen_drawer_lock_posix.cc b/modules/desktop_capture/screen_drawer_lock_posix.cc
index 095189b..bfee619 100644
--- a/modules/desktop_capture/screen_drawer_lock_posix.cc
+++ b/modules/desktop_capture/screen_drawer_lock_posix.cc
@@ -32,7 +32,7 @@
   semaphore_ = sem_open(name, O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO, 1);
   if (semaphore_ == SEM_FAILED) {
     RTC_LOG_ERRNO(LS_ERROR) << "Failed to create named semaphore with " << name;
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 
   sem_wait(semaphore_);
diff --git a/modules/desktop_capture/win/dxgi_output_duplicator.cc b/modules/desktop_capture/win/dxgi_output_duplicator.cc
index 177e126..caad6f4 100644
--- a/modules/desktop_capture/win/dxgi_output_duplicator.cc
+++ b/modules/desktop_capture/win/dxgi_output_duplicator.cc
@@ -55,7 +55,7 @@
       return Rotation::CLOCK_WISE_270;
   }
 
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return Rotation::CLOCK_WISE_0;
 }
 
diff --git a/modules/remote_bitrate_estimator/aimd_rate_control.cc b/modules/remote_bitrate_estimator/aimd_rate_control.cc
index 0a754e1..408f208 100644
--- a/modules/remote_bitrate_estimator/aimd_rate_control.cc
+++ b/modules/remote_bitrate_estimator/aimd_rate_control.cc
@@ -361,7 +361,7 @@
       break;
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 
   current_bitrate_ = ClampBitrate(new_bitrate.value_or(current_bitrate_));
@@ -416,7 +416,7 @@
       rate_control_state_ = RateControlState::kRcHold;
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 }
 
diff --git a/modules/rtp_rtcp/include/rtp_cvo.h b/modules/rtp_rtcp/include/rtp_cvo.h
index bc0b4ee..497946d 100644
--- a/modules/rtp_rtcp/include/rtp_cvo.h
+++ b/modules/rtp_rtcp/include/rtp_cvo.h
@@ -30,7 +30,7 @@
     case kVideoRotation_270:
       return 3;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -47,7 +47,7 @@
     case 3:
       return kVideoRotation_270;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return kVideoRotation_0;
   }
 }
diff --git a/modules/rtp_rtcp/source/flexfec_header_reader_writer.cc b/modules/rtp_rtcp/source/flexfec_header_reader_writer.cc
index 59541c4..2fbb3ca 100644
--- a/modules/rtp_rtcp/source/flexfec_header_reader_writer.cc
+++ b/modules/rtp_rtcp/source/flexfec_header_reader_writer.cc
@@ -233,7 +233,8 @@
     // We must expand it with zeros.
     return kFlexfecPacketMaskSizes[2];
   }
-  RTC_NOTREACHED() << "Incorrect packet mask size: " << packet_mask_size << ".";
+  RTC_DCHECK_NOTREACHED() << "Incorrect packet mask size: " << packet_mask_size
+                          << ".";
   return kFlexfecPacketMaskSizes[2];
 }
 
@@ -311,8 +312,8 @@
       written_packet_mask[2] |= 0x40;          // Set bit 15.
     }
   } else {
-    RTC_NOTREACHED() << "Incorrect packet mask size: " << packet_mask_size
-                     << ".";
+    RTC_DCHECK_NOTREACHED()
+        << "Incorrect packet mask size: " << packet_mask_size << ".";
   }
 }
 
diff --git a/modules/rtp_rtcp/source/forward_error_correction_internal.cc b/modules/rtp_rtcp/source/forward_error_correction_internal.cc
index 400b640..ac68162 100644
--- a/modules/rtp_rtcp/source/forward_error_correction_internal.cc
+++ b/modules/rtp_rtcp/source/forward_error_correction_internal.cc
@@ -266,7 +266,7 @@
       }
     }
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 }
 
diff --git a/modules/rtp_rtcp/source/packet_sequencer.cc b/modules/rtp_rtcp/source/packet_sequencer.cc
index a0c27de..037542d 100644
--- a/modules/rtp_rtcp/source/packet_sequencer.cc
+++ b/modules/rtp_rtcp/source/packet_sequencer.cc
@@ -66,7 +66,7 @@
     }
     packet.SetSequenceNumber(rtx_sequence_number_++);
   } else {
-    RTC_NOTREACHED() << "Unexpected ssrc " << packet.Ssrc();
+    RTC_DCHECK_NOTREACHED() << "Unexpected ssrc " << packet.Ssrc();
   }
 }
 
diff --git a/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc b/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc
index 71d0ab5..50102c2 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc
@@ -484,7 +484,7 @@
 
           return false;
         default:
-          RTC_NOTREACHED();
+          RTC_DCHECK_NOTREACHED();
           break;
       }
       ++seq_no;
diff --git a/modules/rtp_rtcp/source/rtcp_sender.cc b/modules/rtp_rtcp/source/rtcp_sender.cc
index 597bb3c..a07e5aa 100644
--- a/modules/rtp_rtcp/source/rtcp_sender.cc
+++ b/modules/rtp_rtcp/source/rtcp_sender.cc
@@ -742,8 +742,8 @@
     }
     auto builder_it = builders_.find(rtcp_packet_type);
     if (builder_it == builders_.end()) {
-      RTC_NOTREACHED() << "Could not find builder for packet type "
-                       << rtcp_packet_type;
+      RTC_DCHECK_NOTREACHED()
+          << "Could not find builder for packet type " << rtcp_packet_type;
     } else {
       BuilderFunc func = builder_it->second;
       (this->*func)(context, sender);
diff --git a/modules/rtp_rtcp/source/rtp_header_extension_map.cc b/modules/rtp_rtcp/source/rtp_header_extension_map.cc
index 3c96593..4b8c7b5 100644
--- a/modules/rtp_rtcp/source/rtp_header_extension_map.cc
+++ b/modules/rtp_rtcp/source/rtp_header_extension_map.cc
@@ -93,7 +93,7 @@
   for (const ExtensionInfo& extension : kExtensions)
     if (type == extension.type)
       return Register(id, extension.type, extension.uri);
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return false;
 }
 
diff --git a/modules/rtp_rtcp/source/rtp_sender.cc b/modules/rtp_rtcp/source/rtp_sender.cc
index 029a5fb..feda738 100644
--- a/modules/rtp_rtcp/source/rtp_sender.cc
+++ b/modules/rtp_rtcp/source/rtp_sender.cc
@@ -125,7 +125,7 @@
       return false;
     case kRtpExtensionNone:
     case kRtpExtensionNumberOfExtensions:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return false;
   }
   RTC_CHECK_NOTREACHED();
diff --git a/modules/rtp_rtcp/source/rtp_sender_video.cc b/modules/rtp_rtcp/source/rtp_sender_video.cc
index c9fc782..da5dad5 100644
--- a/modules/rtp_rtcp/source/rtp_sender_video.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_video.cc
@@ -107,7 +107,7 @@
     case VideoFrameType::kVideoFrameDelta:
       return "video_delta";
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return "";
   }
 }
diff --git a/modules/rtp_rtcp/test/testFec/test_packet_masks_metrics.cc b/modules/rtp_rtcp/test/testFec/test_packet_masks_metrics.cc
index 8941f1c..25ceee5 100644
--- a/modules/rtp_rtcp/test/testFec/test_packet_masks_metrics.cc
+++ b/modules/rtp_rtcp/test/testFec/test_packet_masks_metrics.cc
@@ -509,7 +509,7 @@
     } else if (code_type == xor_bursty_code) {
       CopyMetrics(&kMetricsXorBursty[code_index], metrics_code);
     } else {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
   }
 
diff --git a/modules/video_capture/windows/sink_filter_ds.cc b/modules/video_capture/windows/sink_filter_ds.cc
index e07cd68..9a0cf47 100644
--- a/modules/video_capture/windows/sink_filter_ds.cc
+++ b/modules/video_capture/windows/sink_filter_ds.cc
@@ -58,7 +58,7 @@
   }
 
   STDMETHOD(Clone)(IEnumPins** pins) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return E_NOTIMPL;
   }
 
@@ -83,7 +83,7 @@
   }
 
   STDMETHOD(Skip)(ULONG count) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return E_NOTIMPL;
   }
 
@@ -274,7 +274,7 @@
 
   // IEnumMediaTypes
   STDMETHOD(Clone)(IEnumMediaTypes** pins) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return E_NOTIMPL;
   }
 
@@ -359,12 +359,12 @@
         media_type->subtype = MEDIASUBTYPE_MJPG;
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
   }
 
   STDMETHOD(Skip)(ULONG count) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return E_NOTIMPL;
   }
 
@@ -538,7 +538,7 @@
     return VFW_E_NOT_STOPPED;
 
   if (receive_pin_) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return VFW_E_ALREADY_CONNECTED;
   }
 
@@ -564,7 +564,7 @@
   RTC_DCHECK(Filter()->IsStopped());
 
   if (receive_pin_) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return VFW_E_ALREADY_CONNECTED;
   }
 
diff --git a/modules/video_coding/codecs/h264/h264.cc b/modules/video_coding/codecs/h264/h264.cc
index ca6ce3c..8324b7c 100644
--- a/modules/video_coding/codecs/h264/h264.cc
+++ b/modules/video_coding/codecs/h264/h264.cc
@@ -102,7 +102,7 @@
   RTC_LOG(LS_INFO) << "Creating H264EncoderImpl.";
   return std::make_unique<H264EncoderImpl>(codec);
 #else
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 #endif
 }
@@ -127,7 +127,7 @@
   RTC_LOG(LS_INFO) << "Creating H264DecoderImpl.";
   return std::make_unique<H264DecoderImpl>();
 #else
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 #endif
 }
diff --git a/modules/video_coding/codecs/h264/h264_encoder_impl.cc b/modules/video_coding/codecs/h264/h264_encoder_impl.cc
index 4256926..b8c6916 100644
--- a/modules/video_coding/codecs/h264/h264_encoder_impl.cc
+++ b/modules/video_coding/codecs/h264/h264_encoder_impl.cc
@@ -81,7 +81,7 @@
     case videoFrameTypeInvalid:
       break;
   }
-  RTC_NOTREACHED() << "Unexpected/invalid frame type: " << type;
+  RTC_DCHECK_NOTREACHED() << "Unexpected/invalid frame type: " << type;
   return VideoFrameType::kEmptyFrame;
 }
 
@@ -537,7 +537,7 @@
   } else if (codec_.mode == VideoCodecMode::kScreensharing) {
     encoder_params.iUsageType = SCREEN_CONTENT_REAL_TIME;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   encoder_params.iPicWidth = configurations_[i].width;
   encoder_params.iPicHeight = configurations_[i].height;
diff --git a/modules/video_coding/codecs/h264/include/h264_globals.h b/modules/video_coding/codecs/h264/include/h264_globals.h
index 073d8f9..b61dc8c 100644
--- a/modules/video_coding/codecs/h264/include/h264_globals.h
+++ b/modules/video_coding/codecs/h264/include/h264_globals.h
@@ -52,7 +52,7 @@
   } else if (mode == H264PacketizationMode::SingleNalUnit) {
     return "SingleNalUnit";
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return "";
 }
 
diff --git a/modules/video_coding/codecs/interface/libvpx_interface.cc b/modules/video_coding/codecs/interface/libvpx_interface.cc
index b24922f..4f33bef 100644
--- a/modules/video_coding/codecs/interface/libvpx_interface.cc
+++ b/modules/video_coding/codecs/interface/libvpx_interface.cc
@@ -133,7 +133,7 @@
       case VP9E_SET_POSTENCODE_DROP:
         return vpx_codec_control(ctx, VP9E_SET_POSTENCODE_DROP, param);
       default:
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
@@ -181,7 +181,7 @@
           // Might be intended for uint32_t but int literal used, try fallback.
           return codec_control(ctx, ctrl_id, static_cast<uint32_t>(param));
         }
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
@@ -199,7 +199,7 @@
       case VP9E_GET_LEVEL:
         return vpx_codec_control(ctx, VP9E_GET_LEVEL, param);
       default:
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
@@ -213,7 +213,7 @@
       case VP9E_SET_ROI_MAP:
         return vpx_codec_control(ctx, VP9E_SET_ROI_MAP, param);
       default:
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
@@ -227,7 +227,7 @@
       case VP9E_GET_ACTIVEMAP:
         return vpx_codec_control(ctx, VP8E_SET_ACTIVEMAP, param);
       default:
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
@@ -239,7 +239,7 @@
       case VP8E_SET_SCALEMODE:
         return vpx_codec_control(ctx, VP8E_SET_SCALEMODE, param);
       default:
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
@@ -251,7 +251,7 @@
       case VP9E_SET_SVC_PARAMETERS:
         return vpx_codec_control_(ctx, VP9E_SET_SVC_PARAMETERS, param);
       default:
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
@@ -263,7 +263,7 @@
       case VP9E_SET_SVC_FRAME_DROP_LAYER:
         return vpx_codec_control_(ctx, VP9E_SET_SVC_FRAME_DROP_LAYER, param);
       default:
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
@@ -277,7 +277,7 @@
       case VP9E_REGISTER_CX_CALLBACK:
         return vpx_codec_control_(ctx, VP9E_REGISTER_CX_CALLBACK, param);
       default:
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
@@ -291,7 +291,7 @@
       case VP9E_GET_SVC_LAYER_ID:
         return vpx_codec_control_(ctx, VP9E_GET_SVC_LAYER_ID, param);
       default:
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
@@ -306,7 +306,7 @@
       case VP9E_GET_SVC_REF_FRAME_CONFIG:
         return vpx_codec_control_(ctx, VP9E_GET_SVC_REF_FRAME_CONFIG, param);
       default:
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
@@ -319,7 +319,7 @@
       case VP9E_SET_SVC_SPATIAL_LAYER_SYNC:
         return vpx_codec_control_(ctx, VP9E_SET_SVC_SPATIAL_LAYER_SYNC, param);
       default:
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
@@ -331,7 +331,7 @@
       case VP9E_SET_EXTERNAL_RATE_CONTROL:
         return vpx_codec_control_(ctx, VP9E_SET_EXTERNAL_RATE_CONTROL, param);
       default:
-        RTC_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
+        RTC_DCHECK_NOTREACHED() << "Unsupported libvpx ctrl_id: " << ctrl_id;
     }
     return VPX_CODEC_ERROR;
   }
diff --git a/modules/video_coding/codecs/multiplex/multiplex_decoder_adapter.cc b/modules/video_coding/codecs/multiplex/multiplex_decoder_adapter.cc
index e1bf598..0ad3d38 100644
--- a/modules/video_coding/codecs/multiplex/multiplex_decoder_adapter.cc
+++ b/modules/video_coding/codecs/multiplex/multiplex_decoder_adapter.cc
@@ -36,11 +36,11 @@
     adapter_->Decoded(stream_idx_, &decoded_image, decode_time_ms, qp);
   }
   int32_t Decoded(VideoFrame& decoded_image) override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return WEBRTC_VIDEO_CODEC_OK;
   }
   int32_t Decoded(VideoFrame& decoded_image, int64_t decode_time_ms) override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return WEBRTC_VIDEO_CODEC_OK;
   }
 
diff --git a/modules/video_coding/codecs/test/video_codec_unittest.h b/modules/video_coding/codecs/test/video_codec_unittest.h
index 13bcbf0..7d05882 100644
--- a/modules/video_coding/codecs/test/video_codec_unittest.h
+++ b/modules/video_coding/codecs/test/video_codec_unittest.h
@@ -54,11 +54,11 @@
         : test_(test) {}
 
     int32_t Decoded(VideoFrame& frame) override {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return -1;
     }
     int32_t Decoded(VideoFrame& frame, int64_t decode_time_ms) override {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return -1;
     }
     void Decoded(VideoFrame& frame,
diff --git a/modules/video_coding/codecs/test/video_encoder_decoder_instantiation_tests.cc b/modules/video_coding/codecs/test/video_encoder_decoder_instantiation_tests.cc
index e7a7f7d..41f2304 100644
--- a/modules/video_coding/codecs/test/video_encoder_decoder_instantiation_tests.cc
+++ b/modules/video_coding/codecs/test/video_encoder_decoder_instantiation_tests.cc
@@ -73,7 +73,7 @@
     encoder_factory_ = CreateObjCEncoderFactory();
     decoder_factory_ = CreateObjCDecoderFactory();
 #else
-    RTC_NOTREACHED() << "Only support Android and iOS.";
+    RTC_DCHECK_NOTREACHED() << "Only support Android and iOS.";
 #endif
   }
 
diff --git a/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc b/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc
index 0020c80..03da293 100644
--- a/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc
+++ b/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc
@@ -350,7 +350,7 @@
     EXPECT_FALSE(contains_pps) << "Delta frame should not contain PPS.";
     EXPECT_FALSE(contains_idr) << "Delta frame should not contain IDR.";
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 }
 
diff --git a/modules/video_coding/codecs/test/videocodec_test_libvpx.cc b/modules/video_coding/codecs/test/videocodec_test_libvpx.cc
index 0eb0d5a..062375b 100644
--- a/modules/video_coding/codecs/test/videocodec_test_libvpx.cc
+++ b/modules/video_coding/codecs/test/videocodec_test_libvpx.cc
@@ -49,7 +49,7 @@
     } else if (codec == kVideoCodecVP9) {
       EXPECT_TRUE(vp9::GetQp(encoded_frame.data(), encoded_frame.size(), &qp));
     } else {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
     EXPECT_EQ(encoded_frame.qp_, qp) << "Encoder QP != parsed bitstream QP.";
   }
diff --git a/modules/video_coding/codecs/vp8/default_temporal_layers.cc b/modules/video_coding/codecs/vp8/default_temporal_layers.cc
index 4de8d91..94860da 100644
--- a/modules/video_coding/codecs/vp8/default_temporal_layers.cc
+++ b/modules/video_coding/codecs/vp8/default_temporal_layers.cc
@@ -78,10 +78,10 @@
       // 0               0               ...
       return {0, 3, 2, 3, 1, 3, 2, 3};
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return {0};
 }
 
@@ -236,10 +236,10 @@
               {"----", {kReference, kReference, kReferenceAndUpdate}},
               {"----", {kReference, kReference, kReference, kFreezeEntropy}}};
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return {{"", {kNone, kNone, kNone}}};
 }
 
@@ -694,7 +694,7 @@
       return template_structure;
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       // To make the compiler happy!
       return template_structure;
   }
@@ -725,7 +725,7 @@
               {0},    {4, 6, 8},   {4, 6, 8},   {4, 8, 10},
               {4, 8}, {8, 10, 12}, {8, 10, 12}, {8, 12, 14}};
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return {};
   }
 }
diff --git a/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc
index 0d6fdfa..44a379f 100644
--- a/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc
+++ b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc
@@ -205,7 +205,7 @@
       break;
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 }
 
@@ -1357,7 +1357,7 @@
       MaybeUpdatePixelFormat(VPX_IMG_FMT_NV12);
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 
   // Prepare `raw_images_` from `mapped_buffer` and, if simulcast, scaled
@@ -1399,10 +1399,11 @@
                         << " instead of "
                         << VideoFrameBufferTypeToString(mapped_buffer->type())
                         << ". Can't encode frame.";
-      RTC_NOTREACHED() << "Scaled buffer type "
-                       << VideoFrameBufferTypeToString(scaled_buffer->type())
-                       << " is not compatible with mapped buffer type "
-                       << VideoFrameBufferTypeToString(mapped_buffer->type());
+      RTC_DCHECK_NOTREACHED()
+          << "Scaled buffer type "
+          << VideoFrameBufferTypeToString(scaled_buffer->type())
+          << " is not compatible with mapped buffer type "
+          << VideoFrameBufferTypeToString(mapped_buffer->type());
       return {};
     }
     SetRawImagePlanes(&raw_images_[i], scaled_buffer);
diff --git a/modules/video_coding/codecs/vp8/screenshare_layers.cc b/modules/video_coding/codecs/vp8/screenshare_layers.cc
index 27d070f..71db0b2 100644
--- a/modules/video_coding/codecs/vp8/screenshare_layers.cc
+++ b/modules/video_coding/codecs/vp8/screenshare_layers.cc
@@ -212,7 +212,7 @@
       ++stats_.num_dropped_frames_;
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 
   DependencyInfo dependency_info;
@@ -446,7 +446,7 @@
       return template_structure;
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       // To make the compiler happy!
       return template_structure;
   }
diff --git a/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc b/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
index dd2dad6..e5b3bd4 100644
--- a/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
+++ b/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
@@ -565,7 +565,7 @@
     } else if (flags == -1) {
       dropped_frame = true;
     } else {
-      RTC_NOTREACHED() << "Unexpected flags";
+      RTC_DCHECK_NOTREACHED() << "Unexpected flags";
     }
     clock_.AdvanceTime(TimeDelta::Millis(1000 / 5));
   }
diff --git a/modules/video_coding/codecs/vp9/include/vp9_globals.h b/modules/video_coding/codecs/vp9/include/vp9_globals.h
index 840d63e..bbd83f3 100644
--- a/modules/video_coding/codecs/vp9/include/vp9_globals.h
+++ b/modules/video_coding/codecs/vp9/include/vp9_globals.h
@@ -131,7 +131,7 @@
         pid_diff[7][1] = 2;
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
   }
 
diff --git a/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.cc b/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.cc
index 40b4d82..5d0f380 100644
--- a/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.cc
+++ b/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.cc
@@ -64,7 +64,7 @@
           transfer = ColorSpace::TransferID::kBT2020_10;
           break;
         default:
-          RTC_NOTREACHED();
+          RTC_DCHECK_NOTREACHED();
           break;
       }
       matrix = ColorSpace::MatrixID::kBT2020_NCL;
diff --git a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
index c32673d..443efc2 100644
--- a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
+++ b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
@@ -573,7 +573,7 @@
     case VP9Profile::kProfile1:
       // Encoding of profile 1 is not implemented. It would require extended
       // support for I444, I422, and I440 buffers.
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
     case VP9Profile::kProfile2:
       img_fmt = VPX_IMG_FMT_I42016;
@@ -833,7 +833,7 @@
         libvpx_->codec_control(encoder_, VP9E_SET_SVC_INTER_LAYER_PRED, 2);
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
 
     memset(&svc_drop_frame_, 0, sizeof(svc_drop_frame_));
@@ -1111,7 +1111,7 @@
       break;
     }
     case VP9Profile::kProfile1: {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
     }
     case VP9Profile::kProfile2: {
@@ -2001,7 +2001,7 @@
       break;
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   return mapped_buffer;
 }
diff --git a/modules/video_coding/codecs/vp9/vp9.cc b/modules/video_coding/codecs/vp9/vp9.cc
index 9570e53..7b787f3 100644
--- a/modules/video_coding/codecs/vp9/vp9.cc
+++ b/modules/video_coding/codecs/vp9/vp9.cc
@@ -77,7 +77,7 @@
                                             LibvpxInterface::Create(),
                                             FieldTrialBasedConfig());
 #else
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 #endif
 }
@@ -88,7 +88,7 @@
   return std::make_unique<LibvpxVp9Encoder>(codec, LibvpxInterface::Create(),
                                             FieldTrialBasedConfig());
 #else
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 #endif
 }
@@ -106,7 +106,7 @@
 #ifdef RTC_ENABLE_VP9
   return std::make_unique<LibvpxVp9Decoder>();
 #else
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 #endif
 }
diff --git a/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.cc b/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.cc
index f399c59..181550c 100644
--- a/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.cc
+++ b/modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.cc
@@ -79,7 +79,7 @@
 
         // TODO(phoglund): this limit is being hit in tests since Oct 5 2016.
         // See https://bugs.chromium.org/p/webrtc/issues/detail?id=6484.
-        // RTC_NOTREACHED();
+        // RTC_DCHECK_NOTREACHED();
       }
     }
   }
diff --git a/modules/video_coding/frame_buffer.cc b/modules/video_coding/frame_buffer.cc
index 937534a..787da1e 100644
--- a/modules/video_coding/frame_buffer.cc
+++ b/modules/video_coding/frame_buffer.cc
@@ -241,7 +241,7 @@
 
     case kStateEmpty:
       // Should only be set to empty through Reset().
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
   _state = state;
diff --git a/modules/video_coding/h264_packet_buffer.cc b/modules/video_coding/h264_packet_buffer.cc
index 7b821a1..6096665 100644
--- a/modules/video_coding/h264_packet_buffer.cc
+++ b/modules/video_coding/h264_packet_buffer.cc
@@ -118,7 +118,7 @@
     }
   }
 
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return result;
 }
 
diff --git a/modules/video_coding/jitter_buffer.cc b/modules/video_coding/jitter_buffer.cc
index c3b0961..4c6015e 100644
--- a/modules/video_coding/jitter_buffer.cc
+++ b/modules/video_coding/jitter_buffer.cc
@@ -497,7 +497,7 @@
       RecycleFrameBuffer(frame);
       return kFlushIndicator;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   return buffer_state;
 }
diff --git a/modules/video_coding/jitter_estimator.cc b/modules/video_coding/jitter_estimator.cc
index 89cf51f..87848ae 100644
--- a/modules/video_coding/jitter_estimator.cc
+++ b/modules/video_coding/jitter_estimator.cc
@@ -246,7 +246,7 @@
   hMh_sigma = deltaFSBytes * Mh[0] + Mh[1] + sigma;
   if ((hMh_sigma < 1e-9 && hMh_sigma >= 0) ||
       (hMh_sigma > -1e-9 && hMh_sigma <= 0)) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return;
   }
   kalmanGain[0] = Mh[0] / hMh_sigma;
@@ -301,7 +301,7 @@
   _lastUpdateT = now;
 
   if (_alphaCount == 0) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return;
   }
   double alpha =
diff --git a/modules/video_coding/nack_requester_unittest.cc b/modules/video_coding/nack_requester_unittest.cc
index c9659e3..0e5d415 100644
--- a/modules/video_coding/nack_requester_unittest.cc
+++ b/modules/video_coding/nack_requester_unittest.cc
@@ -56,7 +56,7 @@
 
   bool WaitForSendNack() {
     if (timed_out_) {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return false;
     }
 
diff --git a/modules/video_coding/svc/scalability_structure_full_svc.cc b/modules/video_coding/svc/scalability_structure_full_svc.cc
index 7177427..8920592 100644
--- a/modules/video_coding/svc/scalability_structure_full_svc.cc
+++ b/modules/video_coding/svc/scalability_structure_full_svc.cc
@@ -123,7 +123,7 @@
       }
       return kDeltaT0;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return kNone;
 }
 
@@ -227,7 +227,7 @@
       }
       break;
     case kNone:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
 
diff --git a/modules/video_coding/svc/scalability_structure_key_svc.cc b/modules/video_coding/svc/scalability_structure_key_svc.cc
index 6cd96a6..0ef7e8f 100644
--- a/modules/video_coding/svc/scalability_structure_key_svc.cc
+++ b/modules/video_coding/svc/scalability_structure_key_svc.cc
@@ -198,7 +198,7 @@
       }
       return kDeltaT0;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return kNone;
 }
 
@@ -227,7 +227,7 @@
     case kNone:
       break;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return {};
 }
 
diff --git a/modules/video_coding/svc/scalability_structure_simulcast.cc b/modules/video_coding/svc/scalability_structure_simulcast.cc
index 0db91cc..e5fa4c4 100644
--- a/modules/video_coding/svc/scalability_structure_simulcast.cc
+++ b/modules/video_coding/svc/scalability_structure_simulcast.cc
@@ -106,7 +106,7 @@
       }
       return kDeltaT0;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return kDeltaT0;
 }
 
@@ -184,7 +184,7 @@
       }
       break;
     case kNone:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
 
diff --git a/modules/video_coding/utility/simulcast_test_fixture_impl.cc b/modules/video_coding/utility/simulcast_test_fixture_impl.cc
index 435f472..0789f6a 100644
--- a/modules/video_coding/utility/simulcast_test_fixture_impl.cc
+++ b/modules/video_coding/utility/simulcast_test_fixture_impl.cc
@@ -143,7 +143,7 @@
     return 0;
   }
   int32_t Decoded(VideoFrame& decoded_image, int64_t decode_time_ms) override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return -1;
   }
   void Decoded(VideoFrame& decoded_image,
diff --git a/net/dcsctp/packet/sctp_packet.cc b/net/dcsctp/packet/sctp_packet.cc
index 3e419c5..cc66235 100644
--- a/net/dcsctp/packet/sctp_packet.cc
+++ b/net/dcsctp/packet/sctp_packet.cc
@@ -82,8 +82,8 @@
     // The packet header (CommonHeader) hasn't been written yet:
     return max_packet_size_ - kHeaderSize;
   } else if (out_.size() > max_packet_size_) {
-    RTC_NOTREACHED() << "Exceeded max size, data=" << out_.size()
-                     << ", max_size=" << max_packet_size_;
+    RTC_DCHECK_NOTREACHED() << "Exceeded max size, data=" << out_.size()
+                            << ", max_size=" << max_packet_size_;
     return 0;
   }
   return max_packet_size_ - out_.size();
diff --git a/p2p/base/basic_ice_controller.cc b/p2p/base/basic_ice_controller.cc
index ac22e1d..81fb324 100644
--- a/p2p/base/basic_ice_controller.cc
+++ b/p2p/base/basic_ice_controller.cc
@@ -846,7 +846,7 @@
       return selected || better_than_selected;
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return false;
   }
 }
diff --git a/p2p/base/connection.cc b/p2p/base/connection.cc
index f7bd47d..e0e5c15 100644
--- a/p2p/base/connection.cc
+++ b/p2p/base/connection.cc
@@ -216,7 +216,7 @@
     request->AddAttribute(std::make_unique<StunUInt64Attribute>(
         STUN_ATTR_ICE_CONTROLLED, connection_->port()->IceTiebreaker()));
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 
   // Adding PRIORITY Attribute.
@@ -528,7 +528,7 @@
         }
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
     }
   }
diff --git a/p2p/base/dtls_transport.cc b/p2p/base/dtls_transport.cc
index 172d061..bf8583f 100644
--- a/p2p/base/dtls_transport.cc
+++ b/p2p/base/dtls_transport.cc
@@ -433,7 +433,7 @@
                            "webrtc::DtlsTransportState::kClosed.";
       return -1;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return -1;
   }
 }
@@ -532,7 +532,7 @@
                            "webrtc::DtlsTransportState::kClosed.";
       break;
     case webrtc::DtlsTransportState::kNumValues:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
 }
@@ -720,7 +720,7 @@
       // packets in this state, the incoming queue must be empty. We
       // ignore write errors, thus any errors must be because of
       // configuration and therefore are our fault.
-      RTC_NOTREACHED() << "StartSSL failed.";
+      RTC_DCHECK_NOTREACHED() << "StartSSL failed.";
       RTC_LOG(LS_ERROR) << ToString() << ": Couldn't start DTLS handshake";
       set_dtls_state(webrtc::DtlsTransportState::kFailed);
       return;
diff --git a/p2p/base/p2p_transport_channel.cc b/p2p/base/p2p_transport_channel.cc
index 5c6b32c..655490b 100644
--- a/p2p/base/p2p_transport_channel.cc
+++ b/p2p/base/p2p_transport_channel.cc
@@ -1128,7 +1128,7 @@
                        << remote_candidate.ToSensitiveString();
       return;
     } else {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       port->SendBindingErrorResponse(stun_msg, address, STUN_ERROR_SERVER_ERROR,
                                      STUN_ERROR_REASON_SERVER_ERROR);
       return;
@@ -1300,7 +1300,7 @@
       });
   if (p == resolvers_.end()) {
     RTC_LOG(LS_ERROR) << "Unexpected AsyncDnsResolver return";
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return;
   }
   Candidate candidate = p->candidate_;
@@ -1953,7 +1953,7 @@
                    state == IceTransportState::STATE_COMPLETED);
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
     }
     state_ = state;
diff --git a/p2p/base/p2p_transport_channel_unittest.cc b/p2p/base/p2p_transport_channel_unittest.cc
index dfc3cec..6d04468 100644
--- a/p2p/base/p2p_transport_channel_unittest.cc
+++ b/p2p/base/p2p_transport_channel_unittest.cc
@@ -1178,7 +1178,7 @@
         }
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
     }
   }
diff --git a/p2p/base/port.cc b/p2p/base/port.cc
index 4b2685d..51297c4 100644
--- a/p2p/base/port.cc
+++ b/p2p/base/port.cc
@@ -697,7 +697,7 @@
       }
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   return ret;
 }
@@ -715,7 +715,7 @@
                                 size_t size,
                                 const rtc::SocketAddress& remote_addr,
                                 int64_t packet_time_us) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return false;
 }
 
diff --git a/p2p/base/pseudo_tcp.cc b/p2p/base/pseudo_tcp.cc
index 13e7a22..f168227 100644
--- a/p2p/base/pseudo_tcp.cc
+++ b/p2p/base/pseudo_tcp.cc
@@ -288,7 +288,7 @@
   // Check if it's time to retransmit a segment
   if (m_rto_base && (rtc::TimeDiff32(m_rto_base + m_rx_rto, now) <= 0)) {
     if (m_slist.empty()) {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     } else {
 // Note: (m_slist.front().xmit == 0)) {
 // retransmit segments
@@ -375,7 +375,7 @@
   } else if (opt == OPT_RCVBUF) {
     *value = m_rbuf_len;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 }
 void PseudoTcp::SetOption(Option opt, int value) {
@@ -390,7 +390,7 @@
     RTC_DCHECK(m_state == TCP_LISTEN);
     resizeReceiveBuffer(value);
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 }
 
diff --git a/p2p/base/stun_port.cc b/p2p/base/stun_port.cc
index f2b12f7..1ebd15e 100644
--- a/p2p/base/stun_port.cc
+++ b/p2p/base/stun_port.cc
@@ -248,7 +248,7 @@
   // it would lead to a crash when accessing the local candidate of the
   // connection that would be created below.
   if (Candidates().empty()) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return nullptr;
   }
   // When the socket is shared, the srflx candidate is gathered by the UDPPort.
diff --git a/p2p/base/test_turn_server.h b/p2p/base/test_turn_server.h
index 6cad135..bbdc566 100644
--- a/p2p/base/test_turn_server.h
+++ b/p2p/base/test_turn_server.h
@@ -125,7 +125,7 @@
         server_.AddInternalServerSocket(socket, proto);
       }
     } else {
-      RTC_NOTREACHED() << "Unknown protocol type: " << proto;
+      RTC_DCHECK_NOTREACHED() << "Unknown protocol type: " << proto;
     }
   }
 
diff --git a/p2p/base/transport_description_factory.cc b/p2p/base/transport_description_factory.cc
index 6beae34..e46114e 100644
--- a/p2p/base/transport_description_factory.cc
+++ b/p2p/base/transport_description_factory.cc
@@ -109,7 +109,7 @@
       } else {
         RTC_LOG(LS_ERROR) << "Remote offer connection role is " << role
                           << " which is a protocol violation";
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
       }
 
       if (!SetSecurityInfo(desc.get(), role)) {
diff --git a/p2p/client/basic_port_allocator.cc b/p2p/client/basic_port_allocator.cc
index 15f59bd..9967d9a 100644
--- a/p2p/client/basic_port_allocator.cc
+++ b/p2p/client/basic_port_allocator.cc
@@ -56,7 +56,7 @@
     case cricket::PROTO_TLS:
       return 0;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return 0;
   }
 }
@@ -68,7 +68,7 @@
     case AF_INET:
       return 1;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return 0;
   }
 }
@@ -1173,7 +1173,7 @@
       return;
     }
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 BasicPortAllocatorSession::PortData* BasicPortAllocatorSession::FindPort(
@@ -1397,7 +1397,7 @@
       break;
 
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 
   if (state() == kRunning) {
@@ -1653,7 +1653,7 @@
     relay_ports_.erase(it);
   } else {
     RTC_LOG(LS_ERROR) << "Unexpected OnPortDestroyed for nonexistent port.";
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 }
 
diff --git a/pc/channel.cc b/pc/channel.cc
index 9e717208f..9e113c8 100644
--- a/pc/channel.cc
+++ b/pc/channel.cc
@@ -422,7 +422,7 @@
       // (and SetSend(true) is called).
       RTC_LOG(LS_ERROR) << "Can't send outgoing RTP packet for " << ToString()
                         << " when SRTP is inactive and crypto is required";
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return false;
     }
 
diff --git a/pc/dtls_srtp_transport.cc b/pc/dtls_srtp_transport.cc
index 1b9d1a0..9a4135b 100644
--- a/pc/dtls_srtp_transport.cc
+++ b/pc/dtls_srtp_transport.cc
@@ -235,7 +235,7 @@
                                             false, &dtls_buffer[0],
                                             dtls_buffer.size())) {
     RTC_LOG(LS_WARNING) << "DTLS-SRTP key export failed";
-    RTC_NOTREACHED();  // This should never happen
+    RTC_DCHECK_NOTREACHED();  // This should never happen
     return false;
   }
 
diff --git a/pc/dtmf_sender.cc b/pc/dtmf_sender.cc
index 69ef2fb..46811c8 100644
--- a/pc/dtmf_sender.cc
+++ b/pc/dtmf_sender.cc
@@ -194,7 +194,7 @@
     if (!GetDtmfCode(tone, &code)) {
       // The find_first_of(kDtmfValidTones) should have guarantee `tone` is
       // a valid DTMF tone.
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
   }
 
diff --git a/pc/ice_server_parsing.cc b/pc/ice_server_parsing.cc
index b7395c8..b70322e 100644
--- a/pc/ice_server_parsing.cc
+++ b/pc/ice_server_parsing.cc
@@ -275,7 +275,7 @@
     default:
       // We shouldn't get to this point with an invalid service_type, we should
       // have returned an error already.
-      RTC_NOTREACHED() << "Unexpected service type";
+      RTC_DCHECK_NOTREACHED() << "Unexpected service type";
       return RTCErrorType::INTERNAL_ERROR;
   }
   return RTCErrorType::NONE;
diff --git a/pc/jsep_transport.cc b/pc/jsep_transport.cc
index a94af42..5c7f01a 100644
--- a/pc/jsep_transport.cc
+++ b/pc/jsep_transport.cc
@@ -460,7 +460,7 @@
       }
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 
   if (!ret) {
@@ -670,7 +670,7 @@
             }
             break;
           default:
-            RTC_NOTREACHED();
+            RTC_DCHECK_NOTREACHED();
             break;
         }
       } else {
diff --git a/pc/jsep_transport_controller.cc b/pc/jsep_transport_controller.cc
index b1fccbe..b7e9f36 100644
--- a/pc/jsep_transport_controller.cc
+++ b/pc/jsep_transport_controller.cc
@@ -1167,7 +1167,7 @@
     const cricket::Candidate& candidate) {
   // We should never signal peer-reflexive candidates.
   if (candidate.type() == cricket::PRFLX_PORT_TYPE) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return;
   }
 
@@ -1311,7 +1311,7 @@
     // "connected", "completed" or "closed" state.
     new_ice_connection_state = PeerConnectionInterface::kIceConnectionConnected;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 
   if (standardized_ice_connection_state_ != new_ice_connection_state) {
@@ -1369,7 +1369,7 @@
     new_combined_state =
         PeerConnectionInterface::PeerConnectionState::kConnected;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 
   if (combined_connection_state_ != new_combined_state) {
diff --git a/pc/jsep_transport_controller_unittest.cc b/pc/jsep_transport_controller_unittest.cc
index 4c2ee2a..52d8182 100644
--- a/pc/jsep_transport_controller_unittest.cc
+++ b/pc/jsep_transport_controller_unittest.cc
@@ -82,7 +82,9 @@
       cricket::PortAllocator* port_allocator = nullptr) {
     config.transport_observer = this;
     config.rtcp_handler = [](const rtc::CopyOnWriteBuffer& packet,
-                             int64_t packet_time_us) { RTC_NOTREACHED(); };
+                             int64_t packet_time_us) {
+      RTC_DCHECK_NOTREACHED();
+    };
     config.ice_transport_factory = fake_ice_transport_factory_.get();
     config.dtls_transport_factory = fake_dtls_transport_factory_.get();
     config.on_dtls_handshake_error_ = [](rtc::SSLHandshakeError s) {};
diff --git a/pc/jsep_transport_unittest.cc b/pc/jsep_transport_unittest.cc
index 41c9bab..d06fa95 100644
--- a/pc/jsep_transport_unittest.cc
+++ b/pc/jsep_transport_unittest.cc
@@ -124,7 +124,7 @@
             rtp_dtls_transport.get(), rtcp_dtls_transport.get());
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
 
     auto jsep_transport = std::make_unique<JsepTransport>(
diff --git a/pc/media_session.cc b/pc/media_session.cc
index 426eadc..054d570 100644
--- a/pc/media_session.cc
+++ b/pc/media_session.cc
@@ -1691,7 +1691,7 @@
         }
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
     ++msection_index;
   }
@@ -1867,7 +1867,7 @@
         }
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
     ++msection_index;
     // See if we can add the newly generated m= section to the BUNDLE group in
@@ -2798,7 +2798,7 @@
     bool offer_uses_sctpmap = offer_data_description->use_sctpmap();
     data_answer->as_sctp()->set_use_sctpmap(offer_uses_sctpmap);
   } else {
-    RTC_NOTREACHED() << "Non-SCTP data content found";
+    RTC_DCHECK_NOTREACHED() << "Non-SCTP data content found";
   }
 
   bool secure = bundle_transport ? bundle_transport->description.secure()
diff --git a/pc/media_session_unittest.cc b/pc/media_session_unittest.cc
index a02b4c1..cfe9ac8 100644
--- a/pc/media_session_unittest.cc
+++ b/pc/media_session_unittest.cc
@@ -363,7 +363,7 @@
                          num_sim_layer);
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 }
 
@@ -4623,7 +4623,7 @@
         break;
       case RtpTransceiverDirection::kStopped:
         // This does not happen in any current test.
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
 
     auto format_codecs = [](const std::vector<AudioCodec>& codecs) {
diff --git a/pc/peer_connection.cc b/pc/peer_connection.cc
index c02518c..95a251e 100644
--- a/pc/peer_connection.cc
+++ b/pc/peer_connection.cc
@@ -102,7 +102,7 @@
     case PeerConnectionInterface::kAll:
       return cricket::CF_ALL;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   return cricket::CF_NONE;
 }
@@ -220,7 +220,7 @@
       gathering_policy = cricket::GATHER_CONTINUALLY;
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       gathering_policy = cricket::GATHER_ONCE;
   }
 
@@ -2298,7 +2298,7 @@
       NoteUsageEvent(UsageEvent::ICE_STATE_CONNECTED);
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 }
 
@@ -2650,7 +2650,7 @@
     OnIceGatheringChange(PeerConnectionInterface::kIceGatheringNew);
   } else {
     RTC_LOG(LS_ERROR) << "Unknown state received: " << state;
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 }
 
@@ -2774,7 +2774,7 @@
               rtc::kSrtpCryptoSuiteMaxValue);
           break;
         default:
-          RTC_NOTREACHED();
+          RTC_DCHECK_NOTREACHED();
           continue;
       }
     }
@@ -2799,7 +2799,7 @@
               rtc::kSslCipherSuiteMaxValue);
           break;
         default:
-          RTC_NOTREACHED();
+          RTC_DCHECK_NOTREACHED();
           continue;
       }
     }
diff --git a/pc/peer_connection_bundle_unittest.cc b/pc/peer_connection_bundle_unittest.cc
index be05af9..e5eb6c4 100644
--- a/pc/peer_connection_bundle_unittest.cc
+++ b/pc/peer_connection_bundle_unittest.cc
@@ -80,7 +80,7 @@
         return pc()->AddIceCandidate(jsep_candidate.get());
       }
     }
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return false;
   }
 
diff --git a/pc/peer_connection_ice_unittest.cc b/pc/peer_connection_ice_unittest.cc
index a27d174..112d8df 100644
--- a/pc/peer_connection_ice_unittest.cc
+++ b/pc/peer_connection_ice_unittest.cc
@@ -228,7 +228,7 @@
         return dtls_transport->ice_transport()->internal()->GetIceRole();
       }
     }
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return cricket::ICEROLE_UNKNOWN;
   }
 
diff --git a/pc/peer_connection_message_handler.cc b/pc/peer_connection_message_handler.cc
index 4b7913d..54f75f0 100644
--- a/pc/peer_connection_message_handler.cc
+++ b/pc/peer_connection_message_handler.cc
@@ -129,7 +129,7 @@
       break;
     }
     default:
-      RTC_NOTREACHED() << "Not implemented";
+      RTC_DCHECK_NOTREACHED() << "Not implemented";
       break;
   }
 }
diff --git a/pc/peer_connection_signaling_unittest.cc b/pc/peer_connection_signaling_unittest.cc
index dbb0cab..8df90b7 100644
--- a/pc/peer_connection_signaling_unittest.cc
+++ b/pc/peer_connection_signaling_unittest.cc
@@ -82,7 +82,7 @@
     function_(desc);
   }
 
-  void OnFailure(RTCError error) override { RTC_NOTREACHED(); }
+  void OnFailure(RTCError error) override { RTC_DCHECK_NOTREACHED(); }
 
  private:
   bool was_called_ = false;
@@ -273,9 +273,10 @@
         break;
       }
       case SignalingState::kClosed: {
-        RTC_NOTREACHED() << "Set the second member of the tuple to true to "
-                            "achieve a closed state from an existing, valid "
-                            "state.";
+        RTC_DCHECK_NOTREACHED()
+            << "Set the second member of the tuple to true to "
+               "achieve a closed state from an existing, valid "
+               "state.";
       }
     }
 
diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc
index 7f815f2..025feb9 100644
--- a/pc/rtc_stats_collector.cc
+++ b/pc/rtc_stats_collector.cc
@@ -170,7 +170,7 @@
     return RTCIceCandidateType::kPrflx;
   if (type == cricket::RELAY_PORT_TYPE)
     return RTCIceCandidateType::kRelay;
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 
@@ -186,7 +186,7 @@
     case DataChannelInterface::kClosed:
       return RTCDataChannelState::kClosed;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return nullptr;
   }
 }
@@ -203,7 +203,7 @@
     case cricket::IceCandidatePairState::FAILED:
       return RTCStatsIceCandidatePairState::kFailed;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return nullptr;
   }
 }
@@ -246,7 +246,7 @@
     case rtc::ADAPTER_TYPE_ANY:
       return RTCNetworkType::kUnknown;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 
@@ -1008,7 +1008,7 @@
               timestamp_us, *track, *video_sender_info, sender->AttachmentId());
       report->AddStats(std::move(video_track_stats));
     } else {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
   }
 }
@@ -1047,7 +1047,7 @@
               receiver->AttachmentId());
       report->AddStats(std::move(video_track_stats));
     } else {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
   }
 }
@@ -1799,7 +1799,7 @@
     } else if (stats.media_type == cricket::MEDIA_TYPE_VIDEO) {
       ProduceVideoRTPStreamStats_n(timestamp_us, stats, report);
     } else {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
   }
 }
@@ -2163,7 +2163,7 @@
         video_stats[video_channel->media_channel()] =
             std::make_unique<cricket::VideoMediaInfo>();
       } else {
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
       }
     }
   });
diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc
index 53387e8..4ee5dc8 100644
--- a/pc/rtc_stats_collector_unittest.cc
+++ b/pc/rtc_stats_collector_unittest.cc
@@ -2837,7 +2837,7 @@
         return "Video";
       case cricket::MEDIA_TYPE_DATA:
       case cricket::MEDIA_TYPE_UNSUPPORTED:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         return "";
     }
   }
@@ -2896,7 +2896,7 @@
       }
       case cricket::MEDIA_TYPE_DATA:
       case cricket::MEDIA_TYPE_UNSUPPORTED:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
   }
 
diff --git a/pc/rtc_stats_traversal.cc b/pc/rtc_stats_traversal.cc
index 49e79fe..6d886f5 100644
--- a/pc/rtc_stats_traversal.cc
+++ b/pc/rtc_stats_traversal.cc
@@ -140,7 +140,7 @@
     AddIdIfDefined(transport.local_certificate_id, &neighbor_ids);
     AddIdIfDefined(transport.remote_certificate_id, &neighbor_ids);
   } else {
-    RTC_NOTREACHED() << "Unrecognized type: " << type;
+    RTC_DCHECK_NOTREACHED() << "Unrecognized type: " << type;
   }
   return neighbor_ids;
 }
diff --git a/pc/rtp_media_utils.cc b/pc/rtp_media_utils.cc
index c5d642b..52c5bb0 100644
--- a/pc/rtp_media_utils.cc
+++ b/pc/rtp_media_utils.cc
@@ -49,7 +49,7 @@
     case RtpTransceiverDirection::kRecvOnly:
       return RtpTransceiverDirection::kSendOnly;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return direction;
   }
 }
@@ -81,7 +81,7 @@
     case RtpTransceiverDirection::kStopped:
       return "kStopped";
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return "";
 }
 
diff --git a/pc/rtp_transmission_manager.cc b/pc/rtp_transmission_manager.cc
index 9040a69..e917154 100644
--- a/pc/rtp_transmission_manager.cc
+++ b/pc/rtp_transmission_manager.cc
@@ -345,7 +345,7 @@
       return transceiver;
     }
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 
@@ -360,7 +360,7 @@
       return transceiver;
     }
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 
@@ -527,7 +527,7 @@
   } else if (media_type == cricket::MEDIA_TYPE_VIDEO) {
     CreateVideoReceiver(stream, sender_info);
   } else {
-    RTC_NOTREACHED() << "Invalid media type";
+    RTC_DCHECK_NOTREACHED() << "Invalid media type";
   }
 }
 
@@ -562,7 +562,7 @@
       stream->RemoveTrack(video_track);
     }
   } else {
-    RTC_NOTREACHED() << "Invalid media type";
+    RTC_DCHECK_NOTREACHED() << "Invalid media type";
   }
   if (receiver) {
     RTC_DCHECK(!closed_);
diff --git a/pc/sdp_offer_answer.cc b/pc/sdp_offer_answer.cc
index 35d8461..8f5cec2 100644
--- a/pc/sdp_offer_answer.cc
+++ b/pc/sdp_offer_answer.cc
@@ -578,7 +578,7 @@
     case cricket::MEDIA_TYPE_UNSUPPORTED:
       return "not supported";
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return "";
 }
 
@@ -695,7 +695,7 @@
   std::string cname;
   if (!rtc::CreateRandomString(kRtcpCnameLength, &cname)) {
     RTC_LOG(LS_ERROR) << "Failed to generate CNAME.";
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   return cname;
 }
@@ -3915,7 +3915,7 @@
     case SessionError::kTransport:
       return "ERROR_TRANSPORT";
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return "";
 }
 
@@ -4409,7 +4409,7 @@
       semantics_negotiated = kSdpSemanticNegotiatedMixed;
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   RTC_HISTOGRAM_ENUMERATION("WebRTC.PeerConnection.SdpSemanticNegotiated",
                             semantics_negotiated, kSdpSemanticNegotiatedMax);
@@ -4721,11 +4721,12 @@
           static_cast<cricket::VideoChannel*>(channel));
       break;
     case cricket::MEDIA_TYPE_DATA:
-      RTC_NOTREACHED()
+      RTC_DCHECK_NOTREACHED()
           << "Trying to destroy datachannel through DestroyChannelInterface";
       break;
     default:
-      RTC_NOTREACHED() << "Unknown media type: " << channel->media_type();
+      RTC_DCHECK_NOTREACHED()
+          << "Unknown media type: " << channel->media_type();
       break;
   }
 
diff --git a/pc/srtp_transport_unittest.cc b/pc/srtp_transport_unittest.cc
index 46e7397..9ae3d5e 100644
--- a/pc/srtp_transport_unittest.cc
+++ b/pc/srtp_transport_unittest.cc
@@ -101,7 +101,7 @@
         EXPECT_EQ(80 / 8, overhead);  // 80-bit tag.
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
     }
 
diff --git a/pc/stats_collector.cc b/pc/stats_collector.cc
index 113716c..01c519f 100644
--- a/pc/stats_collector.cc
+++ b/pc/stats_collector.cc
@@ -505,7 +505,7 @@
   if (candidate_type == cricket::RELAY_PORT_TYPE) {
     return STATSREPORT_RELAY_PORT_TYPE;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return "unknown";
 }
 
@@ -530,7 +530,7 @@
     case rtc::ADAPTER_TYPE_ANY:
       return STATSREPORT_ADAPTER_TYPE_WILDCARD;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return "";
   }
 }
@@ -572,7 +572,7 @@
     CreateTrackReport(static_cast<VideoTrackInterface*>(track), &reports_,
                       &track_ids_);
   } else {
-    RTC_NOTREACHED() << "Illegal track kind";
+    RTC_DCHECK_NOTREACHED() << "Illegal track kind";
   }
 }
 
diff --git a/pc/test/fake_audio_capture_module.cc b/pc/test/fake_audio_capture_module.cc
index 214ed6b..41611d1 100644
--- a/pc/test/fake_audio_capture_module.cc
+++ b/pc/test/fake_audio_capture_module.cc
@@ -72,7 +72,7 @@
 
 int32_t FakeAudioCaptureModule::ActiveAudioLayer(
     AudioLayer* /*audio_layer*/) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -94,17 +94,17 @@
 }
 
 bool FakeAudioCaptureModule::Initialized() const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int16_t FakeAudioCaptureModule::PlayoutDevices() {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int16_t FakeAudioCaptureModule::RecordingDevices() {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -112,7 +112,7 @@
     uint16_t /*index*/,
     char /*name*/[webrtc::kAdmMaxDeviceNameSize],
     char /*guid*/[webrtc::kAdmMaxGuidSize]) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -120,7 +120,7 @@
     uint16_t /*index*/,
     char /*name*/[webrtc::kAdmMaxDeviceNameSize],
     char /*guid*/[webrtc::kAdmMaxGuidSize]) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -150,7 +150,7 @@
 }
 
 int32_t FakeAudioCaptureModule::PlayoutIsAvailable(bool* /*available*/) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -164,7 +164,7 @@
 }
 
 int32_t FakeAudioCaptureModule::RecordingIsAvailable(bool* /*available*/) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -241,7 +241,7 @@
 }
 
 bool FakeAudioCaptureModule::SpeakerIsInitialized() const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -251,40 +251,40 @@
 }
 
 bool FakeAudioCaptureModule::MicrophoneIsInitialized() const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int32_t FakeAudioCaptureModule::SpeakerVolumeIsAvailable(bool* /*available*/) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int32_t FakeAudioCaptureModule::SetSpeakerVolume(uint32_t /*volume*/) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int32_t FakeAudioCaptureModule::SpeakerVolume(uint32_t* /*volume*/) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int32_t FakeAudioCaptureModule::MaxSpeakerVolume(
     uint32_t* /*max_volume*/) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int32_t FakeAudioCaptureModule::MinSpeakerVolume(
     uint32_t* /*min_volume*/) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int32_t FakeAudioCaptureModule::MicrophoneVolumeIsAvailable(
     bool* /*available*/) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -308,37 +308,37 @@
 
 int32_t FakeAudioCaptureModule::MinMicrophoneVolume(
     uint32_t* /*min_volume*/) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int32_t FakeAudioCaptureModule::SpeakerMuteIsAvailable(bool* /*available*/) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int32_t FakeAudioCaptureModule::SetSpeakerMute(bool /*enable*/) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int32_t FakeAudioCaptureModule::SpeakerMute(bool* /*enabled*/) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int32_t FakeAudioCaptureModule::MicrophoneMuteIsAvailable(bool* /*available*/) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int32_t FakeAudioCaptureModule::SetMicrophoneMute(bool /*enable*/) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 int32_t FakeAudioCaptureModule::MicrophoneMute(bool* /*enabled*/) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -357,7 +357,7 @@
 }
 
 int32_t FakeAudioCaptureModule::StereoPlayout(bool* /*enabled*/) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -376,7 +376,7 @@
 }
 
 int32_t FakeAudioCaptureModule::StereoRecording(bool* /*enabled*/) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -397,7 +397,7 @@
     default:
       // All existing messages should be caught. Getting here should never
       // happen.
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 }
 
@@ -506,7 +506,7 @@
                                         kNumberOfChannels, kSamplesPerSecond,
                                         rec_buffer_, nSamplesOut,
                                         &elapsed_time_ms, &ntp_time_ms) != 0) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   RTC_CHECK(nSamplesOut == kNumberSamples);
 
@@ -532,7 +532,7 @@
           send_buffer_, kNumberSamples, kNumberBytesPerSample,
           kNumberOfChannels, kSamplesPerSecond, kTotalDelayMs, kClockDriftMs,
           current_mic_level, key_pressed, current_mic_level) != 0) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   current_mic_level_ = current_mic_level;
 }
diff --git a/pc/test/fake_rtc_certificate_generator.h b/pc/test/fake_rtc_certificate_generator.h
index fc931ad..dadd5bb 100644
--- a/pc/test/fake_rtc_certificate_generator.h
+++ b/pc/test/fake_rtc_certificate_generator.h
@@ -171,7 +171,7 @@
       case rtc::KT_ECDSA:
         return rtc::RTCCertificate::FromPEM(kEcdsaPems[0]);
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         return nullptr;
     }
   }
@@ -190,7 +190,7 @@
       case rtc::KT_ECDSA:
         return kEcdsaPems[key_index_];
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         return kEcdsaPems[key_index_];
     }
   }
diff --git a/pc/webrtc_sdp.cc b/pc/webrtc_sdp.cc
index 8439616..f95983b 100644
--- a/pc/webrtc_sdp.cc
+++ b/pc/webrtc_sdp.cc
@@ -782,7 +782,7 @@
   } else if (type == cricket::RELAY_PORT_TYPE) {
     preference = kPreferenceRelayed;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   return preference;
 }
@@ -1417,14 +1417,14 @@
         fmt.append(kDefaultSctpmapProtocol);
       }
     } else {
-      RTC_NOTREACHED() << "Data description without SCTP";
+      RTC_DCHECK_NOTREACHED() << "Data description without SCTP";
     }
   } else if (media_type == cricket::MEDIA_TYPE_UNSUPPORTED) {
     const UnsupportedContentDescription* unsupported_desc =
         media_desc->as_unsupported();
     type = unsupported_desc->media_type();
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   // The fmt must never be empty. If no codecs are found, set the fmt attribute
   // to 0.
@@ -1620,7 +1620,7 @@
       InitAttrLine(kAttributeSendRecv, &os);
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       InitAttrLine(kAttributeSendRecv, &os);
       break;
   }
@@ -1995,7 +1995,7 @@
       type = kCandidatePrflx;
       // Peer reflexive candidate may be signaled for being removed.
     } else {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       // Never write out candidates if we don't know the type.
       continue;
     }
diff --git a/pc/webrtc_sdp_unittest.cc b/pc/webrtc_sdp_unittest.cc
index a2a884a..883249c 100644
--- a/pc/webrtc_sdp_unittest.cc
+++ b/pc/webrtc_sdp_unittest.cc
@@ -966,7 +966,7 @@
       break;
     case RtpTransceiverDirection::kStopped:
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       new_direction = "a=sendrecv";
       break;
   }
@@ -1602,7 +1602,7 @@
     } else if (mline_index == 1) {
       content_name = kVideoContentName;
     } else {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
     TransportInfo transport_info(content_name,
                                  TransportDescription(ufrag, pwd));
diff --git a/pc/webrtc_session_description_factory.cc b/pc/webrtc_session_description_factory.cc
index 995ef5e..ac20308 100644
--- a/pc/webrtc_session_description_factory.cc
+++ b/pc/webrtc_session_description_factory.cc
@@ -324,7 +324,7 @@
       break;
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
 }
diff --git a/rtc_base/async_resolver.cc b/rtc_base/async_resolver.cc
index 0fd1097..ad1598f 100644
--- a/rtc_base/async_resolver.cc
+++ b/rtc_base/async_resolver.cc
@@ -70,7 +70,7 @@
                     int family,
                     std::vector<IPAddress>* addresses) {
 #ifdef __native_client__
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   RTC_LOG(LS_WARNING) << "ResolveHostname() is not implemented for NaCl";
   return -1;
 #else   // __native_client__
diff --git a/rtc_base/async_tcp_socket.cc b/rtc_base/async_tcp_socket.cc
index bc8b7dd..c248075 100644
--- a/rtc_base/async_tcp_socket.cc
+++ b/rtc_base/async_tcp_socket.cc
@@ -99,7 +99,7 @@
     case Socket::CS_CONNECTED:
       return STATE_CONNECTED;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return STATE_CLOSED;
   }
 }
@@ -143,7 +143,7 @@
       break;
     }
     if (static_cast<size_t>(res) > view.size()) {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       res = -1;
       break;
     }
@@ -217,7 +217,7 @@
 
   if (size > inbuf_.size()) {
     RTC_LOG(LS_ERROR) << "input buffer overflow";
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     inbuf_.Clear();
   } else {
     inbuf_.SetSize(size);
@@ -323,7 +323,7 @@
     case Socket::CS_CONNECTING:
       return State::kBound;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return State::kClosed;
   }
 }
diff --git a/rtc_base/boringssl_certificate.cc b/rtc_base/boringssl_certificate.cc
index e1bcd61..99b2ab3 100644
--- a/rtc_base/boringssl_certificate.cc
+++ b/rtc_base/boringssl_certificate.cc
@@ -106,7 +106,7 @@
       }
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return false;
   }
   if (!CBB_flush(cbb)) {
diff --git a/rtc_base/checks.h b/rtc_base/checks.h
index 4015338..028de45 100644
--- a/rtc_base/checks.h
+++ b/rtc_base/checks.h
@@ -444,6 +444,8 @@
 #endif
 
 #define RTC_UNREACHABLE_CODE_HIT false
+#define RTC_DCHECK_NOTREACHED() RTC_DCHECK(RTC_UNREACHABLE_CODE_HIT)
+// Deprecated. Use RTC_DCHECK_NOTREACHED instead
 #define RTC_NOTREACHED() RTC_DCHECK(RTC_UNREACHABLE_CODE_HIT)
 
 // Kills the process with an error message. Never returns. Use when you wish to
diff --git a/rtc_base/experiments/field_trial_list.cc b/rtc_base/experiments/field_trial_list.cc
index de897bf..ac3fd88 100644
--- a/rtc_base/experiments/field_trial_list.cc
+++ b/rtc_base/experiments/field_trial_list.cc
@@ -34,7 +34,7 @@
 }
 
 bool FieldTrialStructListBase::Parse(absl::optional<std::string> str_value) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return true;
 }
 
diff --git a/rtc_base/experiments/min_video_bitrate_experiment.cc b/rtc_base/experiments/min_video_bitrate_experiment.cc
index 11450d0..f37c4e9 100644
--- a/rtc_base/experiments/min_video_bitrate_experiment.cc
+++ b/rtc_base/experiments/min_video_bitrate_experiment.cc
@@ -105,7 +105,7 @@
         return absl::nullopt;
     }
 
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 
   return absl::nullopt;
diff --git a/rtc_base/fake_ssl_identity.cc b/rtc_base/fake_ssl_identity.cc
index 0648363..87ede73 100644
--- a/rtc_base/fake_ssl_identity.cc
+++ b/rtc_base/fake_ssl_identity.cc
@@ -103,17 +103,17 @@
 }
 
 std::string FakeSSLIdentity::PrivateKeyToPEMString() const {
-  RTC_NOTREACHED();  // Not implemented.
+  RTC_DCHECK_NOTREACHED();  // Not implemented.
   return "";
 }
 
 std::string FakeSSLIdentity::PublicKeyToPEMString() const {
-  RTC_NOTREACHED();  // Not implemented.
+  RTC_DCHECK_NOTREACHED();  // Not implemented.
   return "";
 }
 
 bool FakeSSLIdentity::operator==(const SSLIdentity& other) const {
-  RTC_NOTREACHED();  // Not implemented.
+  RTC_DCHECK_NOTREACHED();  // Not implemented.
   return false;
 }
 
diff --git a/rtc_base/logging.cc b/rtc_base/logging.cc
index 321d848..5061eae 100644
--- a/rtc_base/logging.cc
+++ b/rtc_base/logging.cc
@@ -481,7 +481,7 @@
     }
 #endif
     default: {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       va_end(args);
       return;
     }
@@ -535,7 +535,7 @@
             reinterpret_cast<uintptr_t>(va_arg(args, const void*)));
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         va_end(args);
         return;
     }
diff --git a/rtc_base/nat_types.cc b/rtc_base/nat_types.cc
index 50d7de0..9ca0360 100644
--- a/rtc_base/nat_types.cc
+++ b/rtc_base/nat_types.cc
@@ -53,7 +53,7 @@
     case NAT_SYMMETRIC:
       return new SymmetricNAT();
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return 0;
   }
 }
diff --git a/rtc_base/network.cc b/rtc_base/network.cc
index 98e4769..dbcdcc4 100644
--- a/rtc_base/network.cc
+++ b/rtc_base/network.cc
@@ -138,7 +138,7 @@
       return kNetworkCostMax + vpnCost;
     case rtc::ADAPTER_TYPE_VPN:
       // The cost of a VPN should be computed using its underlying network type.
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return kNetworkCostUnknown;
     default:
       return kNetworkCostUnknown + vpnCost;
@@ -537,7 +537,7 @@
 
 bool BasicNetworkManager::CreateNetworks(bool include_ignored,
                                          NetworkList* networks) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   RTC_LOG(LS_WARNING) << "BasicNetworkManager doesn't work on NaCl yet";
   return false;
 }
@@ -965,7 +965,7 @@
       break;
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
 }
 
diff --git a/rtc_base/network_constants.cc b/rtc_base/network_constants.cc
index 905aa36..9e6ab52 100644
--- a/rtc_base/network_constants.cc
+++ b/rtc_base/network_constants.cc
@@ -39,7 +39,7 @@
     case ADAPTER_TYPE_LOOPBACK:
       return "Loopback";
     default:
-      RTC_NOTREACHED() << "Invalid type " << type;
+      RTC_DCHECK_NOTREACHED() << "Invalid type " << type;
       return std::string();
   }
 }
diff --git a/rtc_base/null_socket_server.cc b/rtc_base/null_socket_server.cc
index ce1e963..4705163 100644
--- a/rtc_base/null_socket_server.cc
+++ b/rtc_base/null_socket_server.cc
@@ -30,7 +30,7 @@
 }
 
 rtc::Socket* NullSocketServer::CreateSocket(int /* family */, int /* type */) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 
diff --git a/rtc_base/numerics/histogram_percentile_counter.cc b/rtc_base/numerics/histogram_percentile_counter.cc
index 4bc8cb0..29d2341 100644
--- a/rtc_base/numerics/histogram_percentile_counter.cc
+++ b/rtc_base/numerics/histogram_percentile_counter.cc
@@ -72,7 +72,7 @@
       elements_to_skip -= it.second;
     }
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return absl::nullopt;
 }
 
diff --git a/rtc_base/openssl_key_pair.cc b/rtc_base/openssl_key_pair.cc
index 911a751..6ac546e 100644
--- a/rtc_base/openssl_key_pair.cc
+++ b/rtc_base/openssl_key_pair.cc
@@ -143,14 +143,14 @@
   BIO* temp_memory_bio = BIO_new(BIO_s_mem());
   if (!temp_memory_bio) {
     RTC_LOG_F(LS_ERROR) << "Failed to allocate temporary memory bio";
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return "";
   }
   if (!PEM_write_bio_PrivateKey(temp_memory_bio, pkey_, nullptr, nullptr, 0,
                                 nullptr, nullptr)) {
     RTC_LOG_F(LS_ERROR) << "Failed to write private key";
     BIO_free(temp_memory_bio);
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return "";
   }
   char* buffer;
@@ -164,13 +164,13 @@
   BIO* temp_memory_bio = BIO_new(BIO_s_mem());
   if (!temp_memory_bio) {
     RTC_LOG_F(LS_ERROR) << "Failed to allocate temporary memory bio";
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return "";
   }
   if (!PEM_write_bio_PUBKEY(temp_memory_bio, pkey_)) {
     RTC_LOG_F(LS_ERROR) << "Failed to write public key";
     BIO_free(temp_memory_bio);
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return "";
   }
   BIO_write(temp_memory_bio, "\0", 1);
diff --git a/rtc_base/openssl_stream_adapter.cc b/rtc_base/openssl_stream_adapter.cc
index 95408f5..dd82e4f 100644
--- a/rtc_base/openssl_stream_adapter.cc
+++ b/rtc_base/openssl_stream_adapter.cc
@@ -842,7 +842,7 @@
           }
           ContinueSSL();
         } else {
-          RTC_NOTREACHED();
+          RTC_DCHECK_NOTREACHED();
         }
         // This callback will never run again (stopped above).
         return webrtc::TimeDelta::PlusInfinity();
diff --git a/rtc_base/physical_socket_server.cc b/rtc_base/physical_socket_server.cc
index 47d41ee..040904a 100644
--- a/rtc_base/physical_socket_server.cc
+++ b/rtc_base/physical_socket_server.cc
@@ -601,7 +601,7 @@
     case OPT_RTP_SENDTIME_EXTN_ID:
       return -1;  // No logging is necessary as this not a OS socket option.
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return -1;
   }
   return 0;
@@ -737,7 +737,7 @@
         // This is dangerous: if we keep attempting to access a FD after close,
         // it could be reopened by something else making us think it's still
         // open. Note that this is only a DCHECK.
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         return true;
       // Returned during ungraceful peer shutdown.
       case ECONNRESET:
@@ -1649,7 +1649,7 @@
       // Failed?
       // TODO(pthatcher): need a better strategy than this!
       WSAGetLastError();
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return false;
     } else if (dw == WSA_WAIT_TIMEOUT) {
       // Timeout?
diff --git a/rtc_base/socket_adapters.cc b/rtc_base/socket_adapters.cc
index abe5e30..0bd6efa 100644
--- a/rtc_base/socket_adapters.cc
+++ b/rtc_base/socket_adapters.cc
@@ -97,7 +97,7 @@
 
   if (data_len_ >= buffer_size_) {
     RTC_LOG(LS_ERROR) << "Input buffer overflow";
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     data_len_ = 0;
   }
 
diff --git a/rtc_base/ssl_identity.cc b/rtc_base/ssl_identity.cc
index c24f46e..81cf1d7 100644
--- a/rtc_base/ssl_identity.cc
+++ b/rtc_base/ssl_identity.cc
@@ -121,7 +121,7 @@
     params_.rsa.mod_size = kRsaDefaultModSize;
     params_.rsa.pub_exp = kRsaDefaultExponent;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 }
 
diff --git a/rtc_base/strings/string_builder.cc b/rtc_base/strings/string_builder.cc
index caa931b..7536cd7 100644
--- a/rtc_base/strings/string_builder.cc
+++ b/rtc_base/strings/string_builder.cc
@@ -98,7 +98,7 @@
   } else {
     // This should never happen, but we're paranoid, so re-write the
     // terminator in case vsnprintf() overwrote it.
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     buffer_[size_] = '\0';
   }
   va_end(args);
diff --git a/rtc_base/system_time.cc b/rtc_base/system_time.cc
index 9efe76e..d53d923 100644
--- a/rtc_base/system_time.cc
+++ b/rtc_base/system_time.cc
@@ -48,7 +48,7 @@
     // Get the timebase if this is the first time we run.
     // Recommended by Apple's QA1398.
     if (mach_timebase_info(&timebase) != KERN_SUCCESS) {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
   }
   // Use timebase to convert absolute time tick units into nanoseconds.
diff --git a/rtc_base/task_queue_libevent.cc b/rtc_base/task_queue_libevent.cc
index a8b0dbf..4f56400 100644
--- a/rtc_base/task_queue_libevent.cc
+++ b/rtc_base/task_queue_libevent.cc
@@ -288,7 +288,7 @@
       break;
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
   }
 }
diff --git a/rtc_base/task_queue_win.cc b/rtc_base/task_queue_win.cc
index da0535d..6382d6b 100644
--- a/rtc_base/task_queue_win.cc
+++ b/rtc_base/task_queue_win.cc
@@ -335,7 +335,7 @@
           break;
         }
         default:
-          RTC_NOTREACHED();
+          RTC_DCHECK_NOTREACHED();
           break;
       }
     } else {
diff --git a/rtc_base/thread.cc b/rtc_base/thread.cc
index 692d802..46e082f 100644
--- a/rtc_base/thread.cc
+++ b/rtc_base/thread.cc
@@ -116,7 +116,7 @@
 
 ThreadManager::~ThreadManager() {
   // By above RTC_DEFINE_STATIC_LOCAL.
-  RTC_NOTREACHED() << "ThreadManager should never be destructed.";
+  RTC_DCHECK_NOTREACHED() << "ThreadManager should never be destructed.";
 }
 
 // static
diff --git a/rtc_base/virtual_socket_server.cc b/rtc_base/virtual_socket_server.cc
index bcda9cd..88c6eb9 100644
--- a/rtc_base/virtual_socket_server.cc
+++ b/rtc_base/virtual_socket_server.cc
@@ -372,7 +372,7 @@
     } else if (pmsg->message_id == MSG_ID_SIGNALREADEVENT) {
       signal_read_event = !recv_buffer_.empty();
     } else {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
   }
   // Signal events without holding `mutex_`, to avoid recursive locking, as well
diff --git a/rtc_base/win/windows_version.cc b/rtc_base/win/windows_version.cc
index 68866da..80e49f2 100644
--- a/rtc_base/win/windows_version.cc
+++ b/rtc_base/win/windows_version.cc
@@ -215,7 +215,7 @@
       return VERSION_WIN10_20H1;
     }
   } else if (major > 6) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return VERSION_WIN_LAST;
   }
 
diff --git a/rtc_base/win32_socket_server.cc b/rtc_base/win32_socket_server.cc
index 835d1a7..3f3a826 100644
--- a/rtc_base/win32_socket_server.cc
+++ b/rtc_base/win32_socket_server.cc
@@ -566,7 +566,7 @@
       RTC_LOG(LS_WARNING) << "Socket::OPT_DSCP not supported.";
       return -1;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return -1;
   }
   return 0;
diff --git a/rtc_tools/network_tester/test_controller.cc b/rtc_tools/network_tester/test_controller.cc
index 9c0d324..d0e2f4c 100644
--- a/rtc_tools/network_tester/test_controller.cc
+++ b/rtc_tools/network_tester/test_controller.cc
@@ -126,7 +126,7 @@
       break;
     }
     default: {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
   }
 }
diff --git a/rtc_tools/rtc_event_log_visualizer/analyze_audio.cc b/rtc_tools/rtc_event_log_visualizer/analyze_audio.cc
index 02184a6..69a753b 100644
--- a/rtc_tools/rtc_event_log_visualizer/analyze_audio.cc
+++ b/rtc_tools/rtc_event_log_visualizer/analyze_audio.cc
@@ -266,7 +266,7 @@
         file_sample_rate_hz_(file_sample_rate_hz) {}
 
   std::vector<AudioCodecSpec> GetSupportedDecoders() override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return {};
   }
 
diff --git a/rtc_tools/rtc_event_log_visualizer/analyzer.cc b/rtc_tools/rtc_event_log_visualizer/analyzer.cc
index bdde2c9..b438016 100644
--- a/rtc_tools/rtc_event_log_visualizer/analyzer.cc
+++ b/rtc_tools/rtc_event_log_visualizer/analyzer.cc
@@ -959,7 +959,7 @@
           last_series = &overusing_series;
           break;
         case BandwidthUsage::kLast:
-          RTC_NOTREACHED();
+          RTC_DCHECK_NOTREACHED();
       }
     }
 
diff --git a/rtc_tools/video_replay.cc b/rtc_tools/video_replay.cc
index 02202dd..c9fe40f 100644
--- a/rtc_tools/video_replay.cc
+++ b/rtc_tools/video_replay.cc
@@ -292,7 +292,7 @@
       video_codec_type_ = VideoCodecType::kVideoCodecH264;
     } else {
       RTC_LOG(LS_ERROR) << "Unsupported video codec " << codec;
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
   }
   ~DecoderIvfFileWriter() override { file_writer_->Close(); }
diff --git a/sdk/android/src/jni/android_network_monitor.cc b/sdk/android/src/jni/android_network_monitor.cc
index 08b77fe..9dbc27f 100644
--- a/sdk/android/src/jni/android_network_monitor.cc
+++ b/sdk/android/src/jni/android_network_monitor.cc
@@ -104,7 +104,7 @@
   if (enum_name == "CONNECTION_NONE") {
     return NetworkType::NETWORK_NONE;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return NetworkType::NETWORK_UNKNOWN;
 }
 
@@ -138,7 +138,7 @@
       // Map it to VPN for now.
       return rtc::ADAPTER_TYPE_VPN;
     default:
-      RTC_NOTREACHED() << "Invalid network type " << network_type;
+      RTC_DCHECK_NOTREACHED() << "Invalid network type " << network_type;
       return rtc::ADAPTER_TYPE_UNKNOWN;
   }
 }
diff --git a/sdk/android/src/jni/logging/log_sink.cc b/sdk/android/src/jni/logging/log_sink.cc
index 412a781..cebc866 100644
--- a/sdk/android/src/jni/logging/log_sink.cc
+++ b/sdk/android/src/jni/logging/log_sink.cc
@@ -28,7 +28,7 @@
 }
 
 void JNILogSink::OnLogMessage(const std::string& msg) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 }  // namespace jni
diff --git a/sdk/android/src/jni/pc/peer_connection.cc b/sdk/android/src/jni/pc/peer_connection.cc
index abd7ac7..7875fe9 100644
--- a/sdk/android/src/jni/pc/peer_connection.cc
+++ b/sdk/android/src/jni/pc/peer_connection.cc
@@ -117,7 +117,7 @@
   if (enum_name == "UNIFIED_PLAN")
     return SdpSemantics::kUnifiedPlan;
 
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return SdpSemantics::kPlanB;
 }
 
diff --git a/sdk/android/src/jni/pc/rtc_stats_collector_callback_wrapper.cc b/sdk/android/src/jni/pc/rtc_stats_collector_callback_wrapper.cc
index baa3f27..b8eae73 100644
--- a/sdk/android/src/jni/pc/rtc_stats_collector_callback_wrapper.cc
+++ b/sdk/android/src/jni/pc/rtc_stats_collector_callback_wrapper.cc
@@ -112,7 +112,7 @@
                                   NativeToJavaDouble(env, entry.second));
           });
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 
diff --git a/sdk/objc/api/logging/RTCCallbackLogger.mm b/sdk/objc/api/logging/RTCCallbackLogger.mm
index 443fee1..12cedd6 100644
--- a/sdk/objc/api/logging/RTCCallbackLogger.mm
+++ b/sdk/objc/api/logging/RTCCallbackLogger.mm
@@ -36,7 +36,7 @@
   CallbackWithSeverityLogSink(RTCCallbackLoggerMessageAndSeverityHandler callbackHandler)
       : callback_handler_(callbackHandler) {}
 
-  void OnLogMessage(const std::string& message) override { RTC_NOTREACHED(); }
+  void OnLogMessage(const std::string& message) override { RTC_DCHECK_NOTREACHED(); }
 
   void OnLogMessage(const std::string& message, rtc::LoggingSeverity severity) override {
     if (callback_handler_) {
diff --git a/sdk/objc/api/peerconnection/RTCAudioSource.mm b/sdk/objc/api/peerconnection/RTCAudioSource.mm
index b56c6e9..1541045 100644
--- a/sdk/objc/api/peerconnection/RTCAudioSource.mm
+++ b/sdk/objc/api/peerconnection/RTCAudioSource.mm
@@ -35,7 +35,7 @@
 - (instancetype)initWithFactory:(RTC_OBJC_TYPE(RTCPeerConnectionFactory) *)factory
               nativeMediaSource:(rtc::scoped_refptr<webrtc::MediaSourceInterface>)nativeMediaSource
                            type:(RTCMediaSourceType)type {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nil;
 }
 
diff --git a/sdk/objc/api/peerconnection/RTCRtpCodecParameters.mm b/sdk/objc/api/peerconnection/RTCRtpCodecParameters.mm
index b48d51f..753667b 100644
--- a/sdk/objc/api/peerconnection/RTCRtpCodecParameters.mm
+++ b/sdk/objc/api/peerconnection/RTCRtpCodecParameters.mm
@@ -61,10 +61,10 @@
         _kind = kRTCMediaStreamTrackKindVideo;
         break;
       case cricket::MEDIA_TYPE_DATA:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
       case cricket::MEDIA_TYPE_UNSUPPORTED:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
         break;
     }
     if (nativeParameters.clock_rate) {
@@ -94,7 +94,7 @@
   } else if (_kind == kRTCMediaStreamTrackKindVideo) {
     parameters.kind = cricket::MEDIA_TYPE_VIDEO;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   if (_clockRate != nil) {
     parameters.clock_rate = absl::optional<int>(_clockRate.intValue);
diff --git a/sdk/objc/api/peerconnection/RTCSessionDescription.mm b/sdk/objc/api/peerconnection/RTCSessionDescription.mm
index 4ff02e8..539c90b 100644
--- a/sdk/objc/api/peerconnection/RTCSessionDescription.mm
+++ b/sdk/objc/api/peerconnection/RTCSessionDescription.mm
@@ -95,7 +95,7 @@
   } else if (string == webrtc::SessionDescriptionInterface::kRollback) {
     return RTCSdpTypeRollback;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return RTCSdpTypeOffer;
   }
 }
diff --git a/sdk/objc/api/peerconnection/RTCStatisticsReport.mm b/sdk/objc/api/peerconnection/RTCStatisticsReport.mm
index 967683f..28ef326 100644
--- a/sdk/objc/api/peerconnection/RTCStatisticsReport.mm
+++ b/sdk/objc/api/peerconnection/RTCStatisticsReport.mm
@@ -112,7 +112,7 @@
         return [dictionary copy];
       }
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
   }
 
diff --git a/sdk/objc/api/peerconnection/RTCVideoSource.mm b/sdk/objc/api/peerconnection/RTCVideoSource.mm
index 0b1d4a6..3211f18 100644
--- a/sdk/objc/api/peerconnection/RTCVideoSource.mm
+++ b/sdk/objc/api/peerconnection/RTCVideoSource.mm
@@ -44,7 +44,7 @@
 - (instancetype)initWithFactory:(RTC_OBJC_TYPE(RTCPeerConnectionFactory) *)factory
               nativeMediaSource:(rtc::scoped_refptr<webrtc::MediaSourceInterface>)nativeMediaSource
                            type:(RTCMediaSourceType)type {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nil;
 }
 
diff --git a/sdk/objc/api/video_codec/RTCWrappedNativeVideoDecoder.mm b/sdk/objc/api/video_codec/RTCWrappedNativeVideoDecoder.mm
index 48d09cf..261874d 100644
--- a/sdk/objc/api/video_codec/RTCWrappedNativeVideoDecoder.mm
+++ b/sdk/objc/api/video_codec/RTCWrappedNativeVideoDecoder.mm
@@ -33,16 +33,16 @@
 #pragma mark - RTC_OBJC_TYPE(RTCVideoDecoder)
 
 - (void)setCallback:(RTCVideoDecoderCallback)callback {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 - (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 - (NSInteger)releaseDecoder {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -50,12 +50,12 @@
         missingFrames:(BOOL)missingFrames
     codecSpecificInfo:(nullable id<RTC_OBJC_TYPE(RTCCodecSpecificInfo)>)info
          renderTimeMs:(int64_t)renderTimeMs {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 - (NSString *)implementationName {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nil;
 }
 
diff --git a/sdk/objc/api/video_codec/RTCWrappedNativeVideoEncoder.mm b/sdk/objc/api/video_codec/RTCWrappedNativeVideoEncoder.mm
index 6b04d83..4160572 100644
--- a/sdk/objc/api/video_codec/RTCWrappedNativeVideoEncoder.mm
+++ b/sdk/objc/api/video_codec/RTCWrappedNativeVideoEncoder.mm
@@ -33,54 +33,54 @@
 #pragma mark - RTC_OBJC_TYPE(RTCVideoEncoder)
 
 - (void)setCallback:(RTCVideoEncoderCallback)callback {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 - (NSInteger)startEncodeWithSettings:(RTC_OBJC_TYPE(RTCVideoEncoderSettings) *)settings
                        numberOfCores:(int)numberOfCores {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 - (NSInteger)releaseEncoder {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 - (NSInteger)encode:(RTC_OBJC_TYPE(RTCVideoFrame) *)frame
     codecSpecificInfo:(nullable id<RTC_OBJC_TYPE(RTCCodecSpecificInfo)>)info
            frameTypes:(NSArray<NSNumber *> *)frameTypes {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 - (int)setBitrate:(uint32_t)bitrateKbit framerate:(uint32_t)framerate {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 - (NSString *)implementationName {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nil;
 }
 
 - (nullable RTC_OBJC_TYPE(RTCVideoEncoderQpThresholds) *)scalingSettings {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nil;
 }
 
 - (NSInteger)resolutionAlignment {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 1;
 }
 
 - (BOOL)applyAlignmentToAllSimulcastLayers {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return NO;
 }
 
 - (BOOL)supportsNativeHandle {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return NO;
 }
 @end
diff --git a/sdk/objc/components/renderer/metal/RTCMTLRGBRenderer.mm b/sdk/objc/components/renderer/metal/RTCMTLRGBRenderer.mm
index c6adcd0..e5dc4ef 100644
--- a/sdk/objc/components/renderer/metal/RTCMTLRGBRenderer.mm
+++ b/sdk/objc/components/renderer/metal/RTCMTLRGBRenderer.mm
@@ -126,7 +126,7 @@
     mtlPixelFormat = MTLPixelFormatRGBA8Unorm;
     isARGB = true;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return NO;
   }
 
diff --git a/sdk/objc/components/renderer/metal/RTCMTLRenderer.mm b/sdk/objc/components/renderer/metal/RTCMTLRenderer.mm
index e8d1613..410590a 100644
--- a/sdk/objc/components/renderer/metal/RTCMTLRenderer.mm
+++ b/sdk/objc/components/renderer/metal/RTCMTLRenderer.mm
@@ -153,12 +153,12 @@
 }
 
 - (NSString *)shaderSource {
-  RTC_NOTREACHED() << "Virtual method not implemented in subclass.";
+  RTC_DCHECK_NOTREACHED() << "Virtual method not implemented in subclass.";
   return nil;
 }
 
 - (void)uploadTexturesToRenderEncoder:(id<MTLRenderCommandEncoder>)renderEncoder {
-  RTC_NOTREACHED() << "Virtual method not implemented in subclass.";
+  RTC_DCHECK_NOTREACHED() << "Virtual method not implemented in subclass.";
 }
 
 - (void)getWidth:(int *)width
@@ -168,7 +168,7 @@
            cropX:(int *)cropX
            cropY:(int *)cropY
          ofFrame:(nonnull RTC_OBJC_TYPE(RTCVideoFrame) *)frame {
-  RTC_NOTREACHED() << "Virtual method not implemented in subclass.";
+  RTC_DCHECK_NOTREACHED() << "Virtual method not implemented in subclass.";
 }
 
 - (BOOL)setupTexturesForFrame:(nonnull RTC_OBJC_TYPE(RTCVideoFrame) *)frame {
diff --git a/sdk/objc/components/video_frame_buffer/RTCCVPixelBuffer.mm b/sdk/objc/components/video_frame_buffer/RTCCVPixelBuffer.mm
index df8077b..8e39edd 100644
--- a/sdk/objc/components/video_frame_buffer/RTCCVPixelBuffer.mm
+++ b/sdk/objc/components/video_frame_buffer/RTCCVPixelBuffer.mm
@@ -116,7 +116,7 @@
       return 0;  // Scaling RGBA frames does not require a temporary buffer.
     }
   }
-  RTC_NOTREACHED() << "Unsupported pixel format.";
+  RTC_DCHECK_NOTREACHED() << "Unsupported pixel format.";
   return 0;
 }
 
@@ -146,7 +146,9 @@
       [self cropAndScaleARGBTo:outputPixelBuffer];
       break;
     }
-    default: { RTC_NOTREACHED() << "Unsupported pixel format."; }
+    default: {
+      RTC_DCHECK_NOTREACHED() << "Unsupported pixel format.";
+    }
   }
 
   return YES;
@@ -242,7 +244,9 @@
       }
       break;
     }
-    default: { RTC_NOTREACHED() << "Unsupported pixel format."; }
+    default: {
+      RTC_DCHECK_NOTREACHED() << "Unsupported pixel format.";
+    }
   }
 
   CVPixelBufferUnlockBaseAddress(_pixelBuffer, kCVPixelBufferLock_ReadOnly);
diff --git a/sdk/objc/native/src/audio/audio_device_ios.mm b/sdk/objc/native/src/audio/audio_device_ios.mm
index 3ec7d0b..248f3fc 100644
--- a/sdk/objc/native/src/audio/audio_device_ios.mm
+++ b/sdk/objc/native/src/audio/audio_device_ios.mm
@@ -779,7 +779,7 @@
   switch (audio_unit_->GetState()) {
     case VoiceProcessingAudioUnit::kInitRequired:
       RTCLog(@"VPAU state: InitRequired");
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       break;
     case VoiceProcessingAudioUnit::kUninitialized:
       RTCLog(@"VPAU state: Uninitialized");
@@ -1006,22 +1006,22 @@
 }
 
 int32_t AudioDeviceIOS::SetSpeakerVolume(uint32_t volume) {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
 int32_t AudioDeviceIOS::SpeakerVolume(uint32_t& volume) const {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
 int32_t AudioDeviceIOS::MaxSpeakerVolume(uint32_t& maxVolume) const {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
 int32_t AudioDeviceIOS::MinSpeakerVolume(uint32_t& minVolume) const {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
@@ -1031,12 +1031,12 @@
 }
 
 int32_t AudioDeviceIOS::SetSpeakerMute(bool enable) {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
 int32_t AudioDeviceIOS::SpeakerMute(bool& enabled) const {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
@@ -1046,7 +1046,7 @@
 }
 
 int32_t AudioDeviceIOS::SetPlayoutDevice(AudioDeviceModule::WindowsDeviceType) {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
@@ -1064,12 +1064,12 @@
 }
 
 int32_t AudioDeviceIOS::SetMicrophoneMute(bool enable) {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
 int32_t AudioDeviceIOS::MicrophoneMute(bool& enabled) const {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
@@ -1109,36 +1109,36 @@
 }
 
 int32_t AudioDeviceIOS::SetMicrophoneVolume(uint32_t volume) {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
 int32_t AudioDeviceIOS::MicrophoneVolume(uint32_t& volume) const {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
 int32_t AudioDeviceIOS::MaxMicrophoneVolume(uint32_t& maxVolume) const {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
 int32_t AudioDeviceIOS::MinMicrophoneVolume(uint32_t& minVolume) const {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
 int32_t AudioDeviceIOS::PlayoutDeviceName(uint16_t index,
                                           char name[kAdmMaxDeviceNameSize],
                                           char guid[kAdmMaxGuidSize]) {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
 int32_t AudioDeviceIOS::RecordingDeviceName(uint16_t index,
                                             char name[kAdmMaxDeviceNameSize],
                                             char guid[kAdmMaxGuidSize]) {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
@@ -1148,7 +1148,7 @@
 }
 
 int32_t AudioDeviceIOS::SetRecordingDevice(AudioDeviceModule::WindowsDeviceType) {
-  RTC_NOTREACHED() << "Not implemented";
+  RTC_DCHECK_NOTREACHED() << "Not implemented";
   return -1;
 }
 
diff --git a/system_wrappers/include/metrics.h b/system_wrappers/include/metrics.h
index e540b70..c9924584 100644
--- a/system_wrappers/include/metrics.h
+++ b/system_wrappers/include/metrics.h
@@ -270,7 +270,7 @@
         macro_invocation;                                            \
         break;                                                       \
       default:                                                       \
-        RTC_NOTREACHED();                                            \
+        RTC_DCHECK_NOTREACHED();                                     \
     }                                                                \
   } while (0)
 
diff --git a/system_wrappers/source/field_trial.cc b/system_wrappers/source/field_trial.cc
index d10b5cf..d16ea7e 100644
--- a/system_wrappers/source/field_trial.cc
+++ b/system_wrappers/source/field_trial.cc
@@ -85,7 +85,7 @@
       (*fieldtrial_map)[tokens[idx]] = tokens[idx + 1];
     }
   } else {
-    RTC_NOTREACHED() << "Invalid field trials string:" << trials_string;
+    RTC_DCHECK_NOTREACHED() << "Invalid field trials string:" << trials_string;
   }
 }
 
diff --git a/test/audio_decoder_proxy_factory.h b/test/audio_decoder_proxy_factory.h
index 04f397f6..95606d6 100644
--- a/test/audio_decoder_proxy_factory.h
+++ b/test/audio_decoder_proxy_factory.h
@@ -31,7 +31,7 @@
 
   // Unused by tests.
   std::vector<AudioCodecSpec> GetSupportedDecoders() override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return {};
   }
 
diff --git a/test/frame_generator.cc b/test/frame_generator.cc
index 913a4fb..92e95f6 100644
--- a/test/frame_generator.cc
+++ b/test/frame_generator.cc
@@ -82,7 +82,7 @@
       break;
     }
     default:
-      RTC_NOTREACHED() << "The given output format is not supported.";
+      RTC_DCHECK_NOTREACHED() << "The given output format is not supported.";
   }
 
   for (const auto& square : squares_)
diff --git a/test/frame_generator.h b/test/frame_generator.h
index 94e15cb..a5521bf 100644
--- a/test/frame_generator.h
+++ b/test/frame_generator.h
@@ -75,7 +75,7 @@
 
   VideoFrameData NextFrame() override;
   void ChangeResolution(size_t width, size_t height) override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 
  private:
@@ -104,7 +104,7 @@
 
   VideoFrameData NextFrame() override;
   void ChangeResolution(size_t width, size_t height) override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 
  private:
@@ -134,7 +134,7 @@
 
   VideoFrameData NextFrame() override;
   void ChangeResolution(size_t width, size_t height) override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 
  private:
diff --git a/test/function_audio_decoder_factory.h b/test/function_audio_decoder_factory.h
index a5ee593..8464f3d 100644
--- a/test/function_audio_decoder_factory.h
+++ b/test/function_audio_decoder_factory.h
@@ -41,7 +41,7 @@
 
   // Unused by tests.
   std::vector<AudioCodecSpec> GetSupportedDecoders() override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return {};
   }
 
diff --git a/test/layer_filtering_transport.cc b/test/layer_filtering_transport.cc
index d906e07..08c90f7 100644
--- a/test/layer_filtering_transport.cc
+++ b/test/layer_filtering_transport.cc
@@ -163,7 +163,7 @@
         }
       }
     } else {
-      RTC_NOTREACHED() << "Parse error";
+      RTC_DCHECK_NOTREACHED() << "Parse error";
     }
   }
 
diff --git a/test/mappable_native_buffer.cc b/test/mappable_native_buffer.cc
index bd0b304..5625731 100644
--- a/test/mappable_native_buffer.cc
+++ b/test/mappable_native_buffer.cc
@@ -173,7 +173,7 @@
       break;
     }
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   mapped_buffers_.push_back(mapped_buffer);
   return mapped_buffer;
diff --git a/test/pc/e2e/analyzer/video/quality_analyzing_video_encoder.cc b/test/pc/e2e/analyzer/video/quality_analyzing_video_encoder.cc
index 392ebc2..64df2b8 100644
--- a/test/pc/e2e/analyzer/video/quality_analyzing_video_encoder.cc
+++ b/test/pc/e2e/analyzer/video/quality_analyzing_video_encoder.cc
@@ -93,7 +93,8 @@
           mode_ = SimulcastMode::kSimulcast;
           break;
         default:
-          RTC_NOTREACHED() << "Unknown codec_settings->VP9().interLayerPred";
+          RTC_DCHECK_NOTREACHED()
+              << "Unknown codec_settings->VP9().interLayerPred";
           break;
       }
     }
@@ -344,7 +345,7 @@
         return *cur_spatial_index != *required_spatial_index;
       }
     } else {
-      RTC_NOTREACHED() << "Unsupported encoder mode";
+      RTC_DCHECK_NOTREACHED() << "Unsupported encoder mode";
     }
   }
   return false;
diff --git a/test/peer_scenario/peer_scenario_client.cc b/test/peer_scenario/peer_scenario_client.cc
index 7ff6d41..cd5beee 100644
--- a/test/peer_scenario/peer_scenario_client.cc
+++ b/test/peer_scenario/peer_scenario_client.cc
@@ -130,7 +130,7 @@
     on_success_(absl::WrapUnique(desc));
   }
   void OnFailure(RTCError error) override {
-    RTC_NOTREACHED() << error.message();
+    RTC_DCHECK_NOTREACHED() << error.message();
   }
 
  private:
diff --git a/test/scenario/hardware_codecs.cc b/test/scenario/hardware_codecs.cc
index 5267e89..cac0f10 100644
--- a/test/scenario/hardware_codecs.cc
+++ b/test/scenario/hardware_codecs.cc
@@ -28,7 +28,8 @@
 #ifdef WEBRTC_MAC
   return CreateObjCEncoderFactory();
 #else
-  RTC_NOTREACHED() << "Hardware encoder not implemented on this platform.";
+  RTC_DCHECK_NOTREACHED()
+      << "Hardware encoder not implemented on this platform.";
   return nullptr;
 #endif
 #endif
@@ -41,7 +42,8 @@
 #ifdef WEBRTC_MAC
   return CreateObjCDecoderFactory();
 #else
-  RTC_NOTREACHED() << "Hardware decoder not implemented on this platform.";
+  RTC_DCHECK_NOTREACHED()
+      << "Hardware decoder not implemented on this platform.";
   return nullptr;
 #endif
 #endif
diff --git a/test/scenario/video_stream.cc b/test/scenario/video_stream.cc
index 2cce904..9e10613 100644
--- a/test/scenario/video_stream.cc
+++ b/test/scenario/video_stream.cc
@@ -49,7 +49,7 @@
     case VideoCodecType::kVideoCodecH264:
       return CallTest::kPayloadTypeH264;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   return {};
 }
@@ -64,7 +64,7 @@
     case VideoCodecType::kVideoCodecH264:
       return cricket::kH264CodecName;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   return {};
 }
@@ -222,7 +222,7 @@
     case Codec::kVideoCodecAV1:
       return nullptr;
     case Codec::kVideoCodecMultiplex:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
       return nullptr;
   }
 }
@@ -382,7 +382,7 @@
             } else if (config_.encoder.codec == Codec::kVideoCodecGeneric) {
               encoder = std::make_unique<test::FakeEncoder>(sender_->clock_);
             } else {
-              RTC_NOTREACHED();
+              RTC_DCHECK_NOTREACHED();
             }
             fake_encoders_.push_back(encoder.get());
             if (config_.encoder.fake.max_rate.IsFinite())
diff --git a/test/testsupport/file_utils.cc b/test/testsupport/file_utils.cc
index c66f67c..777d789 100644
--- a/test/testsupport/file_utils.cc
+++ b/test/testsupport/file_utils.cc
@@ -106,7 +106,7 @@
   if (::GetTempFileNameW(rtc::ToUtf16(dir).c_str(),
                          rtc::ToUtf16(prefix).c_str(), 0, filename) != 0)
     return rtc::ToUtf8(filename);
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return "";
 #else
   int len = dir.size() + prefix.size() + 2 + 6;
@@ -115,7 +115,7 @@
   snprintf(tempname.get(), len, "%s/%sXXXXXX", dir.c_str(), prefix.c_str());
   int fd = ::mkstemp(tempname.get());
   if (fd == -1) {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return "";
   } else {
     ::close(fd);
diff --git a/test/testsupport/file_utils_override.cc b/test/testsupport/file_utils_override.cc
index 4339155..1e4d56d 100644
--- a/test/testsupport/file_utils_override.cc
+++ b/test/testsupport/file_utils_override.cc
@@ -91,7 +91,7 @@
   char buf[PATH_MAX];
   ssize_t count = ::readlink("/proc/self/exe", buf, arraysize(buf));
   if (count <= 0) {
-    RTC_NOTREACHED() << "Unable to resolve /proc/self/exe.";
+    RTC_DCHECK_NOTREACHED() << "Unable to resolve /proc/self/exe.";
     return absl::nullopt;
   }
   // On POSIX, tests execute in out/Whatever, so src is two levels up.
diff --git a/test/testsupport/perf_result_reporter.cc b/test/testsupport/perf_result_reporter.cc
index 158f1cd..436d1ba 100644
--- a/test/testsupport/perf_result_reporter.cc
+++ b/test/testsupport/perf_result_reporter.cc
@@ -71,7 +71,7 @@
     case Unit::kSigma:
       return "sigma";
     default:
-      RTC_NOTREACHED() << "Unknown unit " << unit;
+      RTC_DCHECK_NOTREACHED() << "Unknown unit " << unit;
       return "unitless";
   }
 }
diff --git a/test/testsupport/perf_test_histogram_writer.cc b/test/testsupport/perf_test_histogram_writer.cc
index 096ca44..93924ba 100644
--- a/test/testsupport/perf_test_histogram_writer.cc
+++ b/test/testsupport/perf_test_histogram_writer.cc
@@ -181,7 +181,7 @@
       case ImproveDirection::kBiggerIsBetter:
         return proto::BIGGER_IS_BETTER;
       default:
-        RTC_NOTREACHED() << "Invalid enum value " << improve_direction;
+        RTC_DCHECK_NOTREACHED() << "Invalid enum value " << improve_direction;
     }
   }
 
diff --git a/test/testsupport/perf_test_histogram_writer_no_protobuf.cc b/test/testsupport/perf_test_histogram_writer_no_protobuf.cc
index 14deb37..6bc810b 100644
--- a/test/testsupport/perf_test_histogram_writer_no_protobuf.cc
+++ b/test/testsupport/perf_test_histogram_writer_no_protobuf.cc
@@ -14,8 +14,9 @@
 namespace test {
 
 PerfTestResultWriter* CreateHistogramWriter() {
-  RTC_NOTREACHED() << "Cannot run perf tests with rtc_enable_protobuf = false. "
-                      "Perf write results as protobufs.";
+  RTC_DCHECK_NOTREACHED()
+      << "Cannot run perf tests with rtc_enable_protobuf = false. "
+         "Perf write results as protobufs.";
   return nullptr;
 }
 
diff --git a/test/time_controller/external_time_controller.cc b/test/time_controller/external_time_controller.cc
index ca8b5ac..e374d45 100644
--- a/test/time_controller/external_time_controller.cc
+++ b/test/time_controller/external_time_controller.cc
@@ -109,7 +109,7 @@
 
   void Delete() override {
     // ProcessThread shouldn't be deleted as a TaskQueue.
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 
   ModuleWrapper* GetWrapper(Module* module) {
@@ -200,12 +200,12 @@
 std::unique_ptr<rtc::Thread> ExternalTimeController::CreateThread(
     const std::string& name,
     std::unique_ptr<rtc::SocketServer> socket_server) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 
 rtc::Thread* ExternalTimeController::GetMainThread() {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 
diff --git a/test/time_controller/simulated_process_thread.h b/test/time_controller/simulated_process_thread.h
index 54d5db7..9a0efac 100644
--- a/test/time_controller/simulated_process_thread.h
+++ b/test/time_controller/simulated_process_thread.h
@@ -49,7 +49,7 @@
  private:
   void Delete() override {
     // ProcessThread shouldn't be deleted as a TaskQueue.
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   Timestamp GetNextTime(Module* module, Timestamp at_time);
 
diff --git a/test/time_controller/simulated_thread.cc b/test/time_controller/simulated_thread.cc
index 73a52b2..4de36c5 100644
--- a/test/time_controller/simulated_thread.cc
+++ b/test/time_controller/simulated_thread.cc
@@ -23,7 +23,7 @@
 class DummySocketServer : public rtc::SocketServer {
  public:
   rtc::Socket* CreateSocket(int family, int type) override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return nullptr;
   }
   bool Wait(int cms, bool process_io) override {
diff --git a/test/time_controller/simulated_time_controller.h b/test/time_controller/simulated_time_controller.h
index 595c18d..b79de3b 100644
--- a/test/time_controller/simulated_time_controller.h
+++ b/test/time_controller/simulated_time_controller.h
@@ -109,13 +109,13 @@
   // Promoted to public
   using CurrentTaskQueueSetter = TaskQueueBase::CurrentTaskQueueSetter;
 
-  void Delete() override { RTC_NOTREACHED(); }
+  void Delete() override { RTC_DCHECK_NOTREACHED(); }
   void PostTask(std::unique_ptr<QueuedTask> /*task*/) override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   void PostDelayedTask(std::unique_ptr<QueuedTask> /*task*/,
                        uint32_t /*milliseconds*/) override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
 };
 
diff --git a/test/time_controller/time_controller_conformance_test.cc b/test/time_controller/time_controller_conformance_test.cc
index 3d582ca..6a35165 100644
--- a/test/time_controller/time_controller_conformance_test.cc
+++ b/test/time_controller/time_controller_conformance_test.cc
@@ -54,7 +54,7 @@
     case webrtc::TimeMode::kSimulated:
       return "SimulatedTime";
     default:
-      RTC_NOTREACHED() << "Time mode not supported";
+      RTC_DCHECK_NOTREACHED() << "Time mode not supported";
   }
 }
 
diff --git a/test/video_decoder_proxy_factory.h b/test/video_decoder_proxy_factory.h
index f294f62..6fd3805 100644
--- a/test/video_decoder_proxy_factory.h
+++ b/test/video_decoder_proxy_factory.h
@@ -30,7 +30,7 @@
 
   // Unused by tests.
   std::vector<SdpVideoFormat> GetSupportedFormats() const override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return {};
   }
 
diff --git a/test/video_encoder_proxy_factory.h b/test/video_encoder_proxy_factory.h
index 7c412ba..f40e69d 100644
--- a/test/video_encoder_proxy_factory.h
+++ b/test/video_encoder_proxy_factory.h
@@ -43,7 +43,7 @@
 
   // Unused by tests.
   std::vector<SdpVideoFormat> GetSupportedFormats() const override {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return {};
   }
 
diff --git a/video/call_stats2.h b/video/call_stats2.h
index 878a43f..74bd348 100644
--- a/video/call_stats2.h
+++ b/video/call_stats2.h
@@ -93,7 +93,7 @@
       // propagating the rtt from the RtpRtcp module, which does not call
       // LastProcessedRtt(). Down the line we should consider removing
       // LastProcessedRtt() and use the interface for event notifications only.
-      RTC_NOTREACHED() << "Legacy call path";
+      RTC_DCHECK_NOTREACHED() << "Legacy call path";
       return 0;
     }
 
diff --git a/video/cpu_scaling_tests.cc b/video/cpu_scaling_tests.cc
index 108c118..5f3dbd7 100644
--- a/video/cpu_scaling_tests.cc
+++ b/video/cpu_scaling_tests.cc
@@ -96,7 +96,7 @@
           observation_complete_.Set();
           break;
         default:
-          RTC_NOTREACHED();
+          RTC_DCHECK_NOTREACHED();
       }
     }
 
diff --git a/video/encoder_bitrate_adjuster.cc b/video/encoder_bitrate_adjuster.cc
index 6a2c99f..9f4d855 100644
--- a/video/encoder_bitrate_adjuster.cc
+++ b/video/encoder_bitrate_adjuster.cc
@@ -163,7 +163,7 @@
             weight * ti_media_utilization_factor.value();
       }
     } else {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
 
     if (layer_info.link_utilization_factor < 1.0) {
diff --git a/video/end_to_end_tests/multi_codec_receive_tests.cc b/video/end_to_end_tests/multi_codec_receive_tests.cc
index e529ae4..4ab16cc 100644
--- a/video/end_to_end_tests/multi_codec_receive_tests.cc
+++ b/video/end_to_end_tests/multi_codec_receive_tests.cc
@@ -42,7 +42,7 @@
   } else if (payload_name == "H264") {
     return test::CallTest::kPayloadTypeH264;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
     return 0;
   }
 }
@@ -223,7 +223,7 @@
         if (format.name == "H264") {
           return H264Encoder::Create(cricket::VideoCodec("H264"));
         }
-        RTC_NOTREACHED() << format.name;
+        RTC_DCHECK_NOTREACHED() << format.name;
         return nullptr;
       });
   test::FunctionVideoDecoderFactory decoder_factory(
@@ -237,7 +237,7 @@
         if (format.name == "H264") {
           return H264Decoder::Create();
         }
-        RTC_NOTREACHED() << format.name;
+        RTC_DCHECK_NOTREACHED() << format.name;
         return nullptr;
       });
   // Create and start call.
diff --git a/video/end_to_end_tests/rtp_rtcp_tests.cc b/video/end_to_end_tests/rtp_rtcp_tests.cc
index a698328..90830d1 100644
--- a/video/end_to_end_tests/rtp_rtcp_tests.cc
+++ b/video/end_to_end_tests/rtp_rtcp_tests.cc
@@ -82,7 +82,7 @@
             observation_complete_.Set();
           break;
         case RtcpMode::kOff:
-          RTC_NOTREACHED();
+          RTC_DCHECK_NOTREACHED();
           break;
       }
 
diff --git a/video/picture_id_tests.cc b/video/picture_id_tests.cc
index df7b082..6dda450 100644
--- a/video/picture_id_tests.cc
+++ b/video/picture_id_tests.cc
@@ -111,7 +111,7 @@
       parsed->tl0_pic_idx = vp9_header->tl0_pic_idx;
       parsed->temporal_idx = vp9_header->temporal_idx;
     } else {
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
     }
 
     parsed->frame_type = parsed_payload->video_header.frame_type;
diff --git a/video/quality_scaling_tests.cc b/video/quality_scaling_tests.cc
index 9837517..c7c393e 100644
--- a/video/quality_scaling_tests.cc
+++ b/video/quality_scaling_tests.cc
@@ -82,7 +82,7 @@
                 return VP9Encoder::Create();
               if (format.name == "H264")
                 return H264Encoder::Create(cricket::VideoCodec("H264"));
-              RTC_NOTREACHED() << format.name;
+              RTC_DCHECK_NOTREACHED() << format.name;
               return nullptr;
             }),
         payload_name_(payload_name),
diff --git a/video/send_statistics_proxy.cc b/video/send_statistics_proxy.cc
index a50008c..eeb379f 100644
--- a/video/send_statistics_proxy.cc
+++ b/video/send_statistics_proxy.cc
@@ -60,7 +60,7 @@
     case VideoEncoderConfig::ContentType::kScreen:
       return kScreenPrefix;
   }
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return nullptr;
 }
 
@@ -795,7 +795,7 @@
   } else if (is_flexfec) {
     entry->type = VideoSendStream::StreamStats::StreamType::kFlexfec;
   } else {
-    RTC_NOTREACHED();
+    RTC_DCHECK_NOTREACHED();
   }
   switch (entry->type) {
     case VideoSendStream::StreamStats::StreamType::kMedia:
diff --git a/video/stats_counter.cc b/video/stats_counter.cc
index fed9f66..dc548ea 100644
--- a/video/stats_counter.cc
+++ b/video/stats_counter.cc
@@ -354,7 +354,7 @@
 }
 
 int MaxCounter::GetValueForEmptyInterval() const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -378,7 +378,7 @@
 }
 
 int PercentCounter::GetValueForEmptyInterval() const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
@@ -402,7 +402,7 @@
 }
 
 int PermilleCounter::GetValueForEmptyInterval() const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc
index ac565cc..9fa7a98 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -888,9 +888,9 @@
         // aom_codec_enc_cfg_t::rc_resize_mode in Av1 encoder wrapper.
         // Until then do nothing, specially do not crash.
       } else {
-        RTC_NOTREACHED() << "Automatic scaling not supported for codec "
-                         << params_.video[video_idx].codec << ", stream "
-                         << video_idx;
+        RTC_DCHECK_NOTREACHED()
+            << "Automatic scaling not supported for codec "
+            << params_.video[video_idx].codec << ", stream " << video_idx;
       }
     } else {
       // Default mode. Single SL, no automatic_scaling,
diff --git a/video/video_receive_stream.cc b/video/video_receive_stream.cc
index 34a8b15..fcd4d7d 100644
--- a/video/video_receive_stream.cc
+++ b/video/video_receive_stream.cc
@@ -459,7 +459,7 @@
 void VideoReceiveStream::SetRtpExtensions(
     std::vector<RtpExtension> extensions) {
   // VideoReceiveStream is deprecated and this function not supported.
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 bool VideoReceiveStream::SetBaseMinimumPlayoutDelayMs(int delay_ms) {
@@ -584,14 +584,14 @@
 
 bool VideoReceiveStream::GetPlayoutRtpTimestamp(uint32_t* rtp_timestamp,
                                                 int64_t* time_ms) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 void VideoReceiveStream::SetEstimatedPlayoutNtpTimestampMs(
     int64_t ntp_timestamp_ms,
     int64_t time_ms) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 bool VideoReceiveStream::SetMinimumPlayoutDelay(int delay_ms) {
diff --git a/video/video_receive_stream2.cc b/video/video_receive_stream2.cc
index 0776a40..87117ea 100644
--- a/video/video_receive_stream2.cc
+++ b/video/video_receive_stream2.cc
@@ -695,14 +695,14 @@
 
 bool VideoReceiveStream2::GetPlayoutRtpTimestamp(uint32_t* rtp_timestamp,
                                                  int64_t* time_ms) const {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
   return 0;
 }
 
 void VideoReceiveStream2::SetEstimatedPlayoutNtpTimestampMs(
     int64_t ntp_timestamp_ms,
     int64_t time_ms) {
-  RTC_NOTREACHED();
+  RTC_DCHECK_NOTREACHED();
 }
 
 bool VideoReceiveStream2::SetMinimumPlayoutDelay(int delay_ms) {
diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc
index 91d5ccc..485072e 100644
--- a/video/video_send_stream_tests.cc
+++ b/video/video_send_stream_tests.cc
@@ -3227,7 +3227,7 @@
         VerifyTemporalLayerStructure3(vp9);
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
   }
 
@@ -3945,7 +3945,7 @@
             state_ = StreamState::kAfterSwitchBack;
             break;
           case StreamState::kAfterSwitchBack:
-            RTC_NOTREACHED();
+            RTC_DCHECK_NOTREACHED();
             break;
         }
         content_switch_event_.Set();
@@ -4095,7 +4095,7 @@
               &parsed_payload->video_header.video_type_header)) {
         parsed.temporal_idx = vp8_header->temporalIdx;
       } else {
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
       }
       return true;
     }
diff --git a/video/video_stream_encoder_unittest.cc b/video/video_stream_encoder_unittest.cc
index 49e5619..1331b8c 100644
--- a/video/video_stream_encoder_unittest.cc
+++ b/video/video_stream_encoder_unittest.cc
@@ -8382,7 +8382,7 @@
             false);
         break;
       default:
-        RTC_NOTREACHED();
+        RTC_DCHECK_NOTREACHED();
     }
     ConfigureEncoderAndBitrate(codec_type_, std::move(encoder));
   }
@@ -8609,7 +8609,7 @@
       str = "Multiplex";
       break;
     default:
-      RTC_NOTREACHED();
+      RTC_DCHECK_NOTREACHED();
   }
   str += allow_i420_conversion ? "_AllowToI420" : "_DisallowToI420";
   return str;