diff --git a/src/base/atomicops-internals-gcc.h b/src/base/atomicops-internals-gcc.h
index f8d2786..4f81ce3 100644
--- a/src/base/atomicops-internals-gcc.h
+++ b/src/base/atomicops-internals-gcc.h
@@ -57,7 +57,7 @@
                                          Atomic32 old_value,
                                          Atomic32 new_value) {
   Atomic32 prev_value = old_value;
-  __atomic_compare_exchange_n(ptr, &prev_value, new_value, 
+  __atomic_compare_exchange_n(ptr, &prev_value, new_value,
           0, __ATOMIC_RELAXED, __ATOMIC_RELAXED);
   return prev_value;
 }
@@ -81,7 +81,7 @@
                                        Atomic32 old_value,
                                        Atomic32 new_value) {
   Atomic32 prev_value = old_value;
-  __atomic_compare_exchange_n(ptr, &prev_value, new_value, 
+  __atomic_compare_exchange_n(ptr, &prev_value, new_value,
           0, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED);
   return prev_value;
 }
@@ -90,7 +90,7 @@
                                        Atomic32 old_value,
                                        Atomic32 new_value) {
   Atomic32 prev_value = old_value;
-  __atomic_compare_exchange_n(ptr, &prev_value, new_value, 
+  __atomic_compare_exchange_n(ptr, &prev_value, new_value,
           0, __ATOMIC_RELEASE, __ATOMIC_RELAXED);
   return prev_value;
 }
@@ -99,11 +99,6 @@
   *ptr = value;
 }
 
-inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
-  *ptr = value;
-  MemoryBarrier();
-}
-
 inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
   MemoryBarrier();
   *ptr = value;
@@ -119,18 +114,13 @@
   return value;
 }
 
-inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
-  MemoryBarrier();
-  return *ptr;
-}
-
 // 64-bit versions
 
 inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
                                          Atomic64 old_value,
                                          Atomic64 new_value) {
   Atomic64 prev_value = old_value;
-  __atomic_compare_exchange_n(ptr, &prev_value, new_value, 
+  __atomic_compare_exchange_n(ptr, &prev_value, new_value,
           0, __ATOMIC_RELAXED, __ATOMIC_RELAXED);
   return prev_value;
 }
@@ -154,7 +144,7 @@
                                        Atomic64 old_value,
                                        Atomic64 new_value) {
   Atomic64 prev_value = old_value;
-  __atomic_compare_exchange_n(ptr, &prev_value, new_value, 
+  __atomic_compare_exchange_n(ptr, &prev_value, new_value,
           0, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED);
   return prev_value;
 }
@@ -163,7 +153,7 @@
                                        Atomic64 old_value,
                                        Atomic64 new_value) {
   Atomic64 prev_value = old_value;
-  __atomic_compare_exchange_n(ptr, &prev_value, new_value, 
+  __atomic_compare_exchange_n(ptr, &prev_value, new_value,
           0, __ATOMIC_RELEASE, __ATOMIC_RELAXED);
   return prev_value;
 }
@@ -172,11 +162,6 @@
   *ptr = value;
 }
 
-inline void Acquire_Store(volatile Atomic64* ptr, Atomic64 value) {
-  *ptr = value;
-  MemoryBarrier();
-}
-
 inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
   MemoryBarrier();
   *ptr = value;
@@ -192,11 +177,6 @@
   return value;
 }
 
-inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
-  MemoryBarrier();
-  return *ptr;
-}
-
 }  // namespace base::subtle
 }  // namespace base
 
