diff --git a/api/voip/BUILD.gn b/api/voip/BUILD.gn
index 4db59fd..9e4f68d 100644
--- a/api/voip/BUILD.gn
+++ b/api/voip/BUILD.gn
@@ -25,7 +25,10 @@
     "../audio_codecs:audio_codecs_api",
     "../neteq:neteq_api",
   ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
+  absl_deps = [
+    "//third_party/abseil-cpp/absl/base:core_headers",
+    "//third_party/abseil-cpp/absl/types:optional",
+  ]
 }
 
 rtc_library("voip_engine_factory") {
diff --git a/api/voip/voip_base.h b/api/voip/voip_base.h
index 6a411f8..d421480 100644
--- a/api/voip/voip_base.h
+++ b/api/voip/voip_base.h
@@ -11,6 +11,7 @@
 #ifndef API_VOIP_VOIP_BASE_H_
 #define API_VOIP_VOIP_BASE_H_
 
+#include "absl/base/attributes.h"
 #include "absl/types/optional.h"
 #include "rtc_base/system/unused.h"
 
@@ -36,7 +37,7 @@
 
 enum class ChannelId : int {};
 
-enum class RTC_WARN_UNUSED_RESULT VoipResult {
+enum class ABSL_MUST_USE_RESULT VoipResult {
   // kOk indicates the function was successfully invoked with no error.
   kOk,
   // kInvalidArgument indicates the caller specified an invalid argument, such
diff --git a/modules/congestion_controller/goog_cc/BUILD.gn b/modules/congestion_controller/goog_cc/BUILD.gn
index a5bcf57..654f083 100644
--- a/modules/congestion_controller/goog_cc/BUILD.gn
+++ b/modules/congestion_controller/goog_cc/BUILD.gn
@@ -226,10 +226,10 @@
     "../../../rtc_base:macromagic",
     "../../../rtc_base:safe_conversions",
     "../../../rtc_base/experiments:field_trial_parser",
-    "../../../rtc_base/system:unused",
     "../../../system_wrappers:metrics",
   ]
   absl_deps = [
+    "//third_party/abseil-cpp/absl/base:core_headers",
     "//third_party/abseil-cpp/absl/strings",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
diff --git a/modules/congestion_controller/goog_cc/probe_controller.h b/modules/congestion_controller/goog_cc/probe_controller.h
index 11e92b9..bcaa293 100644
--- a/modules/congestion_controller/goog_cc/probe_controller.h
+++ b/modules/congestion_controller/goog_cc/probe_controller.h
@@ -16,6 +16,7 @@
 #include <initializer_list>
 #include <vector>
 
+#include "absl/base/attributes.h"
 #include "absl/types/optional.h"
 #include "api/rtc_event_log/rtc_event_log.h"
 #include "api/transport/network_control.h"
@@ -23,7 +24,6 @@
 #include "api/units/data_rate.h"
 #include "rtc_base/constructor_magic.h"
 #include "rtc_base/experiments/field_trial_parser.h"
-#include "rtc_base/system/unused.h"
 
 namespace webrtc {
 
@@ -63,7 +63,7 @@
                            RtcEventLog* event_log);
   ~ProbeController();
 
-  RTC_WARN_UNUSED_RESULT std::vector<ProbeClusterConfig> SetBitrates(
+  ABSL_MUST_USE_RESULT std::vector<ProbeClusterConfig> SetBitrates(
       int64_t min_bitrate_bps,
       int64_t start_bitrate_bps,
       int64_t max_bitrate_bps,
@@ -71,14 +71,14 @@
 
   // The total bitrate, as opposed to the max bitrate, is the sum of the
   // configured bitrates for all active streams.
-  RTC_WARN_UNUSED_RESULT std::vector<ProbeClusterConfig>
+  ABSL_MUST_USE_RESULT std::vector<ProbeClusterConfig>
   OnMaxTotalAllocatedBitrate(int64_t max_total_allocated_bitrate,
                              int64_t at_time_ms);
 
-  RTC_WARN_UNUSED_RESULT std::vector<ProbeClusterConfig> OnNetworkAvailability(
+  ABSL_MUST_USE_RESULT std::vector<ProbeClusterConfig> OnNetworkAvailability(
       NetworkAvailability msg);
 
-  RTC_WARN_UNUSED_RESULT std::vector<ProbeClusterConfig> SetEstimatedBitrate(
+  ABSL_MUST_USE_RESULT std::vector<ProbeClusterConfig> SetEstimatedBitrate(
       int64_t bitrate_bps,
       int64_t at_time_ms);
 
@@ -87,7 +87,7 @@
   void SetAlrStartTimeMs(absl::optional<int64_t> alr_start_time);
   void SetAlrEndedTimeMs(int64_t alr_end_time);
 
-  RTC_WARN_UNUSED_RESULT std::vector<ProbeClusterConfig> RequestProbe(
+  ABSL_MUST_USE_RESULT std::vector<ProbeClusterConfig> RequestProbe(
       int64_t at_time_ms);
 
   // Sets a new maximum probing bitrate, without generating a new probe cluster.
@@ -97,7 +97,7 @@
   // created EXCEPT for |enable_periodic_alr_probing_|.
   void Reset(int64_t at_time_ms);
 
-  RTC_WARN_UNUSED_RESULT std::vector<ProbeClusterConfig> Process(
+  ABSL_MUST_USE_RESULT std::vector<ProbeClusterConfig> Process(
       int64_t at_time_ms);
 
  private:
@@ -110,9 +110,9 @@
     kProbingComplete,
   };
 
-  RTC_WARN_UNUSED_RESULT std::vector<ProbeClusterConfig>
+  ABSL_MUST_USE_RESULT std::vector<ProbeClusterConfig>
   InitiateExponentialProbing(int64_t at_time_ms);
-  RTC_WARN_UNUSED_RESULT std::vector<ProbeClusterConfig> InitiateProbing(
+  ABSL_MUST_USE_RESULT std::vector<ProbeClusterConfig> InitiateProbing(
       int64_t now_ms,
       std::vector<int64_t> bitrates_to_probe,
       bool probe_further);
diff --git a/modules/rtp_rtcp/BUILD.gn b/modules/rtp_rtcp/BUILD.gn
index e10d846..ecac3e5 100644
--- a/modules/rtp_rtcp/BUILD.gn
+++ b/modules/rtp_rtcp/BUILD.gn
@@ -117,7 +117,6 @@
     "../../rtc_base:deprecation",
     "../../rtc_base:divide_round",
     "../../rtc_base:rtc_base_approved",
-    "../../rtc_base/system:unused",
     "../../system_wrappers",
     "../video_coding:codec_globals_headers",
   ]
@@ -352,6 +351,7 @@
   ]
   absl_deps = [
     "//third_party/abseil-cpp/absl/algorithm:container",
+    "//third_party/abseil-cpp/absl/base:core_headers",
     "//third_party/abseil-cpp/absl/memory",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
diff --git a/modules/rtp_rtcp/source/rtcp_packet/loss_notification.h b/modules/rtp_rtcp/source/rtcp_packet/loss_notification.h
index 2603a67..99f6d12 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/loss_notification.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/loss_notification.h
@@ -11,9 +11,9 @@
 #ifndef MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_LOSS_NOTIFICATION_H_
 #define MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_LOSS_NOTIFICATION_H_
 
+#include "absl/base/attributes.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/common_header.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/psfb.h"
-#include "rtc_base/system/unused.h"
 
 namespace webrtc {
 namespace rtcp {
@@ -29,14 +29,15 @@
 
   size_t BlockLength() const override;
 
+  ABSL_MUST_USE_RESULT
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              PacketReadyCallback callback) const override
-      RTC_WARN_UNUSED_RESULT;
+              PacketReadyCallback callback) const override;
 
   // Parse assumes header is already parsed and validated.
-  bool Parse(const CommonHeader& packet) RTC_WARN_UNUSED_RESULT;
+  ABSL_MUST_USE_RESULT
+  bool Parse(const CommonHeader& packet);
 
   // Set all of the values transmitted by the loss notification message.
   // If the values may not be represented by a loss notification message,
@@ -44,9 +45,10 @@
   // when |last_recieved| is ahead of |last_decoded| by more than 0x7fff.
   // This is because |last_recieved| is represented on the wire as a delta,
   // and only 15 bits are available for that delta.
+  ABSL_MUST_USE_RESULT
   bool Set(uint16_t last_decoded,
            uint16_t last_received,
-           bool decodability_flag) RTC_WARN_UNUSED_RESULT;
+           bool decodability_flag);
 
   // RTP sequence number of the first packet belong to the last decoded
   // non-discardable frame.
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 184c298..f6efa8e 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -78,10 +78,12 @@
     "system:arch",
     "system:no_unique_address",
     "system:rtc_export",
-    "system:unused",
     "third_party/base64",
   ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
+  absl_deps = [
+    "//third_party/abseil-cpp/absl/base:core_headers",
+    "//third_party/abseil-cpp/absl/types:optional",
+  ]
   public_deps = []  # no-presubmit-check TODO(webrtc:8603)
 
   sources = [
diff --git a/rtc_base/swap_queue.h b/rtc_base/swap_queue.h
index 9eac49a..3c8149c 100644
--- a/rtc_base/swap_queue.h
+++ b/rtc_base/swap_queue.h
@@ -17,8 +17,8 @@
 #include <utility>
 #include <vector>
 
+#include "absl/base/attributes.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/system/unused.h"
 
 namespace webrtc {
 
@@ -127,7 +127,7 @@
   // When specified, the T given in *input must pass the ItemVerifier() test.
   // The contents of *input after the call are then also guaranteed to pass the
   // ItemVerifier() test.
-  bool Insert(T* input) RTC_WARN_UNUSED_RESULT {
+  ABSL_MUST_USE_RESULT bool Insert(T* input) {
     RTC_DCHECK(input);
 
     RTC_DCHECK(queue_item_verifier_(*input));
@@ -168,7 +168,7 @@
   // empty). When specified, The T given in *output must pass the ItemVerifier()
   // test and the contents of *output after the call are then also guaranteed to
   // pass the ItemVerifier() test.
-  bool Remove(T* output) RTC_WARN_UNUSED_RESULT {
+  ABSL_MUST_USE_RESULT bool Remove(T* output) {
     RTC_DCHECK(output);
 
     RTC_DCHECK(queue_item_verifier_(*output));
diff --git a/rtc_base/synchronization/BUILD.gn b/rtc_base/synchronization/BUILD.gn
index 16922af..6b22b22 100644
--- a/rtc_base/synchronization/BUILD.gn
+++ b/rtc_base/synchronization/BUILD.gn
@@ -36,7 +36,6 @@
     "..:checks",
     "..:macromagic",
     "..:platform_thread_types",
-    "../system:unused",
   ]
   absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
   if (rtc_use_absl_mutex) {
diff --git a/rtc_base/synchronization/mutex.h b/rtc_base/synchronization/mutex.h
index 620fe74..0023d90e 100644
--- a/rtc_base/synchronization/mutex.h
+++ b/rtc_base/synchronization/mutex.h
@@ -13,9 +13,9 @@
 
 #include <atomic>
 
+#include "absl/base/attributes.h"
 #include "absl/base/const_init.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/system/unused.h"
 #include "rtc_base/thread_annotations.h"
 
 #if defined(WEBRTC_ABSL_MUTEX)
@@ -41,7 +41,7 @@
   void Lock() RTC_EXCLUSIVE_LOCK_FUNCTION() {
     impl_.Lock();
   }
-  RTC_WARN_UNUSED_RESULT bool TryLock() RTC_EXCLUSIVE_TRYLOCK_FUNCTION(true) {
+  ABSL_MUST_USE_RESULT bool TryLock() RTC_EXCLUSIVE_TRYLOCK_FUNCTION(true) {
     return impl_.TryLock();
   }
   void Unlock() RTC_UNLOCK_FUNCTION() {
diff --git a/rtc_base/synchronization/mutex_abseil.h b/rtc_base/synchronization/mutex_abseil.h
index 4ad1d07..9247065 100644
--- a/rtc_base/synchronization/mutex_abseil.h
+++ b/rtc_base/synchronization/mutex_abseil.h
@@ -11,6 +11,7 @@
 #ifndef RTC_BASE_SYNCHRONIZATION_MUTEX_ABSEIL_H_
 #define RTC_BASE_SYNCHRONIZATION_MUTEX_ABSEIL_H_
 
+#include "absl/base/attributes.h"
 #include "absl/synchronization/mutex.h"
 #include "rtc_base/thread_annotations.h"
 
@@ -23,7 +24,7 @@
   MutexImpl& operator=(const MutexImpl&) = delete;
 
   void Lock() RTC_EXCLUSIVE_LOCK_FUNCTION() { mutex_.Lock(); }
-  RTC_WARN_UNUSED_RESULT bool TryLock() RTC_EXCLUSIVE_TRYLOCK_FUNCTION(true) {
+  ABSL_MUST_USE_RESULT bool TryLock() RTC_EXCLUSIVE_TRYLOCK_FUNCTION(true) {
     return mutex_.TryLock();
   }
   void Unlock() RTC_UNLOCK_FUNCTION() { mutex_.Unlock(); }
diff --git a/rtc_base/synchronization/mutex_critical_section.h b/rtc_base/synchronization/mutex_critical_section.h
index d206794..cb3d6a0 100644
--- a/rtc_base/synchronization/mutex_critical_section.h
+++ b/rtc_base/synchronization/mutex_critical_section.h
@@ -23,6 +23,7 @@
 #include <sal.h>  // must come after windows headers.
 // clang-format on
 
+#include "absl/base/attributes.h"
 #include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
@@ -37,7 +38,7 @@
   void Lock() RTC_EXCLUSIVE_LOCK_FUNCTION() {
     EnterCriticalSection(&critical_section_);
   }
-  RTC_WARN_UNUSED_RESULT bool TryLock() RTC_EXCLUSIVE_TRYLOCK_FUNCTION(true) {
+  ABSL_MUST_USE_RESULT bool TryLock() RTC_EXCLUSIVE_TRYLOCK_FUNCTION(true) {
     return TryEnterCriticalSection(&critical_section_) != FALSE;
   }
   void Unlock() RTC_UNLOCK_FUNCTION() {
diff --git a/rtc_base/synchronization/mutex_pthread.h b/rtc_base/synchronization/mutex_pthread.h
index c9496e7..8898ca5 100644
--- a/rtc_base/synchronization/mutex_pthread.h
+++ b/rtc_base/synchronization/mutex_pthread.h
@@ -18,6 +18,7 @@
 #include <pthread_spis.h>
 #endif
 
+#include "absl/base/attributes.h"
 #include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
@@ -39,7 +40,7 @@
   ~MutexImpl() { pthread_mutex_destroy(&mutex_); }
 
   void Lock() RTC_EXCLUSIVE_LOCK_FUNCTION() { pthread_mutex_lock(&mutex_); }
-  RTC_WARN_UNUSED_RESULT bool TryLock() RTC_EXCLUSIVE_TRYLOCK_FUNCTION(true) {
+  ABSL_MUST_USE_RESULT bool TryLock() RTC_EXCLUSIVE_TRYLOCK_FUNCTION(true) {
     return pthread_mutex_trylock(&mutex_) == 0;
   }
   void Unlock() RTC_UNLOCK_FUNCTION() { pthread_mutex_unlock(&mutex_); }
