pw_build: Add -Wextra-semi to internal_strict_warnings

Create a new warnings config, internal_strict_warnings, to allow
for specifying new warnings without breaking downstream projects.

Add -Wextra-semi to the internal_strict_warnings config, making extra
semicolons an error in C++. Fix all instances of extra semicolons.

Change-Id: Id1bde8a429eb9b76e44ec63b1b03df8fcb88dfd4
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/98128
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Ben Lawson <benlawson@google.com>
Pigweed-Auto-Submit: Ben Lawson <benlawson@google.com>
diff --git a/pw_allocator/public/pw_allocator/freelist_heap.h b/pw_allocator/public/pw_allocator/freelist_heap.h
index 8073ec3..b27ca54 100644
--- a/pw_allocator/public/pw_allocator/freelist_heap.h
+++ b/pw_allocator/public/pw_allocator/freelist_heap.h
@@ -71,7 +71,7 @@
 
   const FreeListHeap::HeapStats& heap_stats() const {
     return heap_.heap_stats_;
-  };
+  }
 
   void LogHeapStats() { heap_.LogHeapStats(); }
 
diff --git a/pw_bluetooth_hci/packet.cc b/pw_bluetooth_hci/packet.cc
index 6ed6723..7d9665a 100644
--- a/pw_bluetooth_hci/packet.cc
+++ b/pw_bluetooth_hci/packet.cc
@@ -32,7 +32,7 @@
   builder.append(parameters_);
   PW_TRY(builder.status());
   return ConstByteSpan(builder.data(), builder.size());
-};
+}
 
 std::optional<CommandPacket> CommandPacket::Decode(ConstByteSpan data,
                                                    endian order) {
@@ -60,7 +60,7 @@
   builder.append(data_);
   PW_TRY(builder.status());
   return ConstByteSpan(builder.data(), builder.size());
-};
+}
 
 std::optional<AsyncDataPacket> AsyncDataPacket::Decode(ConstByteSpan data,
                                                        endian order) {
@@ -89,7 +89,7 @@
   builder.append(data_);
   PW_TRY(builder.status());
   return ConstByteSpan(builder.data(), builder.size());
-};
+}
 
 std::optional<SyncDataPacket> SyncDataPacket::Decode(ConstByteSpan data,
                                                      endian order) {
@@ -117,7 +117,7 @@
   builder.append(parameters_);
   PW_TRY(builder.status());
   return ConstByteSpan(builder.data(), builder.size());
-};
+}
 
 std::optional<EventPacket> EventPacket::Decode(ConstByteSpan data) {
   if (data.size_bytes() < kHeaderSizeBytes) {
diff --git a/pw_build/BUILD.gn b/pw_build/BUILD.gn
index 93b8478..5824a80 100644
--- a/pw_build/BUILD.gn
+++ b/pw_build/BUILD.gn
@@ -115,6 +115,13 @@
   cflags_c = [ "-Wstrict-prototypes" ]
 }
 
+# This config contains warnings that are enabled for upstream Pigweed.
+# This config MUST NOT be used downstream to allow for warnings to be
+# added in the future without breaking downstream.
+config("internal_strict_warnings") {
+  cflags_cc = [ "-Wextra-semi" ]
+}
+
 config("cpp14") {
   cflags_cc = [ "-std=c++14" ]
 }
diff --git a/pw_bytes/public/pw_bytes/byte_builder.h b/pw_bytes/public/pw_bytes/byte_builder.h
index b2abf6a..1f8a387 100644
--- a/pw_bytes/public/pw_bytes/byte_builder.h
+++ b/pw_bytes/public/pw_bytes/byte_builder.h
@@ -247,7 +247,7 @@
   void clear() {
     size_ = 0;
     status_ = OkStatus();
-  };
+  }
 
   // Sets the statuses to OkStatus();
   void clear_status() { status_ = OkStatus(); }
@@ -331,7 +331,7 @@
   void CopySizeAndStatus(const ByteBuilder& other) {
     size_ = other.size_;
     status_ = other.status_;
-  };
+  }
 
  private:
   template <typename T>
diff --git a/pw_chrono/public/pw_chrono/simulated_system_clock.h b/pw_chrono/public/pw_chrono/simulated_system_clock.h
index 8fefe47..cd43671 100644
--- a/pw_chrono/public/pw_chrono/simulated_system_clock.h
+++ b/pw_chrono/public/pw_chrono/simulated_system_clock.h
@@ -58,7 +58,7 @@
   SystemClock::time_point now() override {
     std::lock_guard lock(interrupt_spin_lock_);
     return current_timestamp_;
-  };
+  }
 
  private:
   // In theory atomics could be used if 64bit atomics are supported, however
diff --git a/pw_chrono/public/pw_chrono/system_clock.h b/pw_chrono/public/pw_chrono/system_clock.h
index ad6e90e..136ca05 100644
--- a/pw_chrono/public/pw_chrono/system_clock.h
+++ b/pw_chrono/public/pw_chrono/system_clock.h
@@ -112,7 +112,7 @@
   template <class Rep, class Period>
   static constexpr duration for_at_least(std::chrono::duration<Rep, Period> d) {
     return std::chrono::ceil<duration>(d);
-  };
+  }
 
   // Computes the nearest time_point after the specified duration has elapsed.
   //
diff --git a/pw_chrono/system_timer_facade_test.cc b/pw_chrono/system_timer_facade_test.cc
index d819e70..5a9b50d 100644
--- a/pw_chrono/system_timer_facade_test.cc
+++ b/pw_chrono/system_timer_facade_test.cc
@@ -84,7 +84,7 @@
       EXPECT_GE(SystemClock::now(), expired_deadline);
       EXPECT_EQ(expired_deadline, expected_deadline);
       callback_ran_notification.release();
-    };
+    }
 
     SystemClock::time_point expected_deadline;
     sync::ThreadNotification callback_ran_notification;
@@ -108,7 +108,7 @@
       EXPECT_GE(SystemClock::now(), expired_deadline);
       EXPECT_EQ(expired_deadline, expected_deadline);
       callback_ran_notification.release();
-    };
+    }
 
     SystemClock::time_point expected_deadline;
     sync::ThreadNotification callback_ran_notification;
@@ -137,7 +137,7 @@
       EXPECT_GE(SystemClock::now(), expired_deadline);
       EXPECT_GE(expired_deadline, expected_min_deadline);
       callback_ran_notification.release();
-    };
+    }
 
     SystemClock::time_point expected_min_deadline;
     sync::ThreadNotification callback_ran_notification;
@@ -167,7 +167,7 @@
     void OnExpiryCallback(SystemClock::time_point) override {
       timer().Cancel();
       callback_ran_notification.release();
-    };
+    }
 
     sync::ThreadNotification callback_ran_notification;
   };
@@ -184,7 +184,7 @@
       timer().InvokeAfter(kRoundedArbitraryShortDuration);
       timer().Cancel();
       callback_ran_notification.release();
-    };
+    }
 
     sync::ThreadNotification callback_ran_notification;
   };
@@ -209,7 +209,7 @@
       } else {
         callbacks_done_notification.release();
       }
-    };
+    }
 
     const uint8_t kRequiredInvocations = 5;
     const SystemClock::duration kPeriod = kRoundedArbitraryShortDuration;
@@ -240,7 +240,7 @@
       } else {
         callbacks_done_notification.release();
       }
-    };
+    }
 
     const uint8_t kExpectedInvocations = 2;
     const SystemClock::duration kPeriod = kRoundedArbitraryShortDuration;
diff --git a/pw_function/public/pw_function/function.h b/pw_function/public/pw_function/function.h
index f01a1e0..c1f7957 100644
--- a/pw_function/public/pw_function/function.h
+++ b/pw_function/public/pw_function/function.h
@@ -104,7 +104,7 @@
   template <typename... PassedArgs>
   Return operator()(PassedArgs&&... args) const {
     return holder_.target()(std::forward<PassedArgs>(args)...);
-  };
+  }
 
   explicit operator bool() const { return !holder_.target().IsNull(); }
 
diff --git a/pw_hdlc/public/pw_hdlc/decoder.h b/pw_hdlc/public/pw_hdlc/decoder.h
index 94caf17..0c6e14e 100644
--- a/pw_hdlc/public/pw_hdlc/decoder.h
+++ b/pw_hdlc/public/pw_hdlc/decoder.h
@@ -115,7 +115,7 @@
   void Clear() {
     state_ = State::kInterFrame;
     Reset();
-  };
+  }
 
  private:
   // State enum class is used to make the Decoder a finite state machine.
diff --git a/pw_kvs/key_value_store.cc b/pw_kvs/key_value_store.cc
index a3e2262..d487190 100644
--- a/pw_kvs/key_value_store.cc
+++ b/pw_kvs/key_value_store.cc
@@ -1045,7 +1045,7 @@
   }
 
   return OkStatus();
-};
+}
 
 Status KeyValueStore::GarbageCollectSector(
     SectorDescriptor& sector_to_gc,
diff --git a/pw_kvs/key_value_store_map_test.cc b/pw_kvs/key_value_store_map_test.cc
index fb00e21..ce5c3fa 100644
--- a/pw_kvs/key_value_store_map_test.cc
+++ b/pw_kvs/key_value_store_map_test.cc
@@ -415,11 +415,13 @@
                               (kParams.sector_count * kParams.redundancy)>(
             kParams.sector_alignment);
 
-#define _TEST(fixture, test, ...) \
-  _TEST_VARIANT(fixture, test, test, __VA_ARGS__)
+#define _TEST(fixture, test, ...)                  \
+  _TEST_VARIANT(fixture, test, test, __VA_ARGS__); \
+  static_assert(true, "Macros must be terminated with a semicolon")
 
-#define _TEST_VARIANT(fixture, test, variant, ...) \
-  TEST_F(fixture, test##variant) { tester_.Test_##test(__VA_ARGS__); }
+#define _TEST_VARIANT(fixture, test, variant, ...)                     \
+  TEST_F(fixture, test##variant) { tester_.Test_##test(__VA_ARGS__); } \
+  static_assert(true, "Macros must be terminated with a semicolon")
 
 // Defines a test fixture that runs all tests against a flash with the specified
 // parameters.
diff --git a/pw_metric/public/pw_metric/metric.h b/pw_metric/public/pw_metric/metric.h
index 1ee998d..5a6a3e0 100644
--- a/pw_metric/public/pw_metric/metric.h
+++ b/pw_metric/public/pw_metric/metric.h
@@ -298,12 +298,12 @@
 #define _PW_METRIC_GROUP_3(static_def, variable_name, group_name) \
   static constexpr uint32_t variable_name##_token =               \
       PW_TOKENIZE_STRING_DOMAIN("metrics", group_name);           \
-  static_def ::pw::metric::Group variable_name = {variable_name##_token};
+  static_def ::pw::metric::Group variable_name = {variable_name##_token}
 
 #define _PW_METRIC_GROUP_4(static_def, parent, variable_name, group_name) \
   static constexpr uint32_t variable_name##_token =                       \
       PW_TOKENIZE_STRING_DOMAIN("metrics", group_name);                   \
   static_def ::pw::metric::Group variable_name = {variable_name##_token,  \
-                                                  parent.children()};
+                                                  parent.children()}
 
 }  // namespace pw::metric
diff --git a/pw_multisink/multisink_threaded_test.cc b/pw_multisink/multisink_threaded_test.cc
index f9941b5..8f5c0ea 100644
--- a/pw_multisink/multisink_threaded_test.cc
+++ b/pw_multisink/multisink_threaded_test.cc
@@ -95,7 +95,7 @@
   void Run() override {
     multisink_.AttachDrain(drain_);
     ReadAllEntries();
-  };
+  }
 
   virtual void ReadAllEntries() {
     do {
@@ -175,7 +175,7 @@
           std::as_bytes(std::span(std::string_view(message))));
       pw::this_thread::yield();
     }
-  };
+  }
 
  private:
   MultiSink& multisink_;
diff --git a/pw_protobuf/public/pw_protobuf/decoder.h b/pw_protobuf/public/pw_protobuf/decoder.h
index 6f3c944..16f75e4 100644
--- a/pw_protobuf/public/pw_protobuf/decoder.h
+++ b/pw_protobuf/public/pw_protobuf/decoder.h
@@ -284,7 +284,7 @@
     return decoder_.ReadBytes(out);
   }
 
-  bool cancelled() const { return state_ == kDecodeCancelled; };
+  bool cancelled() const { return state_ == kDecodeCancelled; }
 
  private:
   enum State {
diff --git a/pw_result/public/pw_result/internal/result_internal.h b/pw_result/public/pw_result/internal/result_internal.h
index 895bfd9..44c78ab 100644
--- a/pw_result/public/pw_result/internal/result_internal.h
+++ b/pw_result/public/pw_result/internal/result_internal.h
@@ -271,7 +271,8 @@
   template <typename... Arg>                                                   \
   void MakeValue(Arg&&... arg) {                                               \
     internal_result::PlacementNew<T>(&unused_, std::forward<Arg>(arg)...);     \
-  }
+  }                                                                            \
+  static_assert(true, "Macros must be terminated with a semicolon")
 
 template <typename T>
 class StatusOrData<T, true> {
diff --git a/pw_result/result_test.cc b/pw_result/result_test.cc
index b65a3cf..9de9db0 100644
--- a/pw_result/result_test.cc
+++ b/pw_result/result_test.cc
@@ -50,8 +50,8 @@
 
 TEST(Result, Deref) {
   struct Tester {
-    constexpr bool True() { return true; };
-    constexpr bool False() { return false; };
+    constexpr bool True() { return true; }
+    constexpr bool False() { return false; }
   };
 
   auto tester = Result<Tester>(Tester());
@@ -66,8 +66,8 @@
 
 TEST(Result, ConstDeref) {
   struct Tester {
-    constexpr bool True() const { return true; };
-    constexpr bool False() const { return false; };
+    constexpr bool True() const { return true; }
+    constexpr bool False() const { return false; }
   };
 
   const auto tester = Result<Tester>(Tester());
diff --git a/pw_router/static_router_test.cc b/pw_router/static_router_test.cc
index e800f49..7772de5 100644
--- a/pw_router/static_router_test.cc
+++ b/pw_router/static_router_test.cc
@@ -55,7 +55,7 @@
   uint32_t priority() const {
     PW_DCHECK_NOTNULL(packet_);
     return packet_->priority;
-  };
+  }
 
  private:
   const BasicPacket* packet_;
diff --git a/pw_rpc/nanopb/public/pw_rpc/nanopb/internal/method_union.h b/pw_rpc/nanopb/public/pw_rpc/nanopb/internal/method_union.h
index aa2a672..10c5aa1 100644
--- a/pw_rpc/nanopb/public/pw_rpc/nanopb/internal/method_union.h
+++ b/pw_rpc/nanopb/public/pw_rpc/nanopb/internal/method_union.h
@@ -53,6 +53,6 @@
   } else {
     return InvalidMethod<kMethod, kType, RawMethod>(id);
   }
-};
+}
 
 }  // namespace pw::rpc::internal
diff --git a/pw_rpc/public/pw_rpc/internal/packet.h b/pw_rpc/public/pw_rpc/internal/packet.h
index 279c487..a187a7e 100644
--- a/pw_rpc/public/pw_rpc/internal/packet.h
+++ b/pw_rpc/public/pw_rpc/internal/packet.h
@@ -37,7 +37,6 @@
       protobuf::SizeOfFieldUint32(RpcPacket::Fields::STATUS,
                                   Status::Unauthenticated().code()) +
       protobuf::SizeOfFieldUint32(RpcPacket::Fields::CALL_ID);
-  ;
 
   // Parses a packet from a protobuf message. Missing or malformed fields take
   // their default values.
diff --git a/pw_rpc/pwpb/public/pw_rpc/pwpb/internal/method_union.h b/pw_rpc/pwpb/public/pw_rpc/pwpb/internal/method_union.h
index f09da19..9e92d44 100644
--- a/pw_rpc/pwpb/public/pw_rpc/pwpb/internal/method_union.h
+++ b/pw_rpc/pwpb/public/pw_rpc/pwpb/internal/method_union.h
@@ -52,6 +52,6 @@
   } else {
     return InvalidMethod<kMethod, kType, RawMethod>(id);
   }
-};
+}
 
 }  // namespace pw::rpc::internal
diff --git a/pw_rpc/raw/method_test.cc b/pw_rpc/raw/method_test.cc
index 3ad9332..888c9ec 100644
--- a/pw_rpc/raw/method_test.cc
+++ b/pw_rpc/raw/method_test.cc
@@ -150,7 +150,7 @@
           break;
       }
     }
-  };
+  }
 
   struct {
     int64_t integer;
diff --git a/pw_rpc/raw/public/pw_rpc/raw/internal/method_union.h b/pw_rpc/raw/public/pw_rpc/raw/internal/method_union.h
index d3eb2bc..4158b0b 100644
--- a/pw_rpc/raw/public/pw_rpc/raw/internal/method_union.h
+++ b/pw_rpc/raw/public/pw_rpc/raw/internal/method_union.h
@@ -45,6 +45,6 @@
   } else {
     return InvalidMethod<kMethod, kType, RawMethod>(id);
   }
-};
+}
 
 }  // namespace pw::rpc::internal
diff --git a/pw_spi/public/pw_spi/device.h b/pw_spi/public/pw_spi/device.h
index db07e9c..d6a2cf7 100644
--- a/pw_spi/public/pw_spi/device.h
+++ b/pw_spi/public/pw_spi/device.h
@@ -105,7 +105,7 @@
           behavior_(other.behavior_),
           first_write_read_(other.first_write_read_) {
       other.selector_ = nullptr;
-    };
+    }
 
     Transaction& operator=(Transaction&& other) {
       initiator_ = std::move(other.initiator_);
diff --git a/pw_spi/public/pw_spi/initiator_mock.h b/pw_spi/public/pw_spi/initiator_mock.h
index ab04b6c..f715b0d 100644
--- a/pw_spi/public/pw_spi/initiator_mock.h
+++ b/pw_spi/public/pw_spi/initiator_mock.h
@@ -106,7 +106,7 @@
 
   pw::Status Configure(const pw::spi::Config& /*config */) override {
     return pw::OkStatus();
-  };
+  }
 
  private:
   std::span<MockTransaction> expected_transactions_;
diff --git a/pw_spi/spi_test.cc b/pw_spi/spi_test.cc
index 21e5178..f3b42ae 100644
--- a/pw_spi/spi_test.cc
+++ b/pw_spi/spi_test.cc
@@ -44,11 +44,11 @@
   // Stub SPI Initiator/ChipSelect objects, used to exercise public API surface.
   class TestInitiator : public Initiator {
    public:
-    Status Configure(const Config& /*config */) override { return OkStatus(); };
+    Status Configure(const Config& /*config */) override { return OkStatus(); }
     Status WriteRead(ConstByteSpan /* write_buffer */,
                      ByteSpan /* read_buffer */) override {
       return OkStatus();
-    };
+    }
   };
 
   class TestChipSelector : public ChipSelector {
diff --git a/pw_stream/interval_reader.cc b/pw_stream/interval_reader.cc
index cbe4d7a..3708e9b 100644
--- a/pw_stream/interval_reader.cc
+++ b/pw_stream/interval_reader.cc
@@ -80,4 +80,4 @@
   return OkStatus();
 }
 
-};  // namespace pw::stream
+}  // namespace pw::stream
diff --git a/pw_stream/socket_stream.cc b/pw_stream/socket_stream.cc
index 2a3c90e..4e7df0b 100644
--- a/pw_stream/socket_stream.cc
+++ b/pw_stream/socket_stream.cc
@@ -154,4 +154,4 @@
   return StatusWithSize(bytes_rcvd);
 }
 
-};  // namespace pw::stream
+}  // namespace pw::stream
diff --git a/pw_sync/public/pw_sync/virtual_basic_lockable.h b/pw_sync/public/pw_sync/virtual_basic_lockable.h
index 4593e07..18e554f 100644
--- a/pw_sync/public/pw_sync/virtual_basic_lockable.h
+++ b/pw_sync/public/pw_sync/virtual_basic_lockable.h
@@ -30,9 +30,9 @@
  public:
   void lock() PW_EXCLUSIVE_LOCK_FUNCTION() {
     DoLockOperation(Operation::kLock);
-  };
+  }
 
-  void unlock() PW_UNLOCK_FUNCTION() { DoLockOperation(Operation::kUnlock); };
+  void unlock() PW_UNLOCK_FUNCTION() { DoLockOperation(Operation::kUnlock); }
 
  protected:
   ~VirtualBasicLockable() = default;
diff --git a/pw_tokenizer/argument_types_test_c.c b/pw_tokenizer/argument_types_test_c.c
index 05257d7..fbaac34 100644
--- a/pw_tokenizer/argument_types_test_c.c
+++ b/pw_tokenizer/argument_types_test_c.c
@@ -76,7 +76,8 @@
   pw_tokenizer_ArgTypes pw_TestTokenizer##name(void) { \
     (void)char_array;                                  \
     return PW_TOKENIZER_ARG_TYPES(__VA_ARGS__);        \
-  }
+  }                                                    \
+  static_assert(1, "Macros must be terminated with a semicolon")
 
 DEFINE_TEST_FUNCTION(NoArgs);
 
@@ -86,7 +87,7 @@
 DEFINE_TEST_FUNCTION(Int32, ((int32_t)1));
 DEFINE_TEST_FUNCTION(Int64, ((int64_t)0));
 DEFINE_TEST_FUNCTION(Uint64, ((uint64_t)1));
-DEFINE_TEST_FUNCTION(Float, 1e10f)
+DEFINE_TEST_FUNCTION(Float, 1e10f);
 DEFINE_TEST_FUNCTION(Double, -2.5e-50);
 DEFINE_TEST_FUNCTION(String, "const char*");
 DEFINE_TEST_FUNCTION(MutableString, ((char*)NULL));
diff --git a/pw_trace_tokenized/public/pw_trace_tokenized/trace_callback.h b/pw_trace_tokenized/public/pw_trace_tokenized/trace_callback.h
index 6d9f23d..f5239a5 100644
--- a/pw_trace_tokenized/public/pw_trace_tokenized/trace_callback.h
+++ b/pw_trace_tokenized/public/pw_trace_tokenized/trace_callback.h
@@ -196,7 +196,7 @@
 // Example: pw::trace::Callbacks::Instance().UnregisterAllSinks();
 class Callbacks {
  public:
-  static CallbacksImpl& Instance() { return instance_; };
+  static CallbacksImpl& Instance() { return instance_; }
 
  private:
   static CallbacksImpl instance_;
diff --git a/pw_trace_tokenized/public/pw_trace_tokenized/trace_tokenized.h b/pw_trace_tokenized/public/pw_trace_tokenized/trace_tokenized.h
index ec5b0ea..65e52b5 100644
--- a/pw_trace_tokenized/public/pw_trace_tokenized/trace_tokenized.h
+++ b/pw_trace_tokenized/public/pw_trace_tokenized/trace_tokenized.h
@@ -149,7 +149,7 @@
 // Example: pw::trace::TokenizedTrace::Instance().Enable(true);
 class TokenizedTrace {
  public:
-  static TokenizedTraceImpl& Instance() { return instance_; };
+  static TokenizedTraceImpl& Instance() { return instance_; }
 
  private:
   static TokenizedTraceImpl instance_;
diff --git a/pw_trace_tokenized/trace_buffer.cc b/pw_trace_tokenized/trace_buffer.cc
index 31314ec..27a966e 100644
--- a/pw_trace_tokenized/trace_buffer.cc
+++ b/pw_trace_tokenized/trace_buffer.cc
@@ -70,7 +70,7 @@
 
   pw::ring_buffer::PrefixedEntryRingBuffer& RingBuffer() {
     return ring_buffer_;
-  };
+  }
 
   ConstByteSpan DeringAndViewRawBuffer() {
     ring_buffer_.Dering()
diff --git a/targets/host/target_toolchains.gni b/targets/host/target_toolchains.gni
index c535eb1..68d4f4d 100644
--- a/targets/host/target_toolchains.gni
+++ b/targets/host/target_toolchains.gni
@@ -121,10 +121,15 @@
   "$dir_pw_build:extra_strict_warnings",
   "$dir_pw_build:clang_thread_safety_warnings",
 ]
+_internal_clang_default_configs =
+    _clang_default_configs + [ "$dir_pw_build:internal_strict_warnings" ]
+
 _gcc_default_configs = [
   "$dir_pw_build:extra_strict_warnings",
   "$dir_pw_toolchain/host_gcc:threading_support",
 ]
+_internal_gcc_default_configs =
+    _gcc_default_configs + [ "$dir_pw_build:internal_strict_warnings" ]
 
 _excluded_members = [
   "defaults",
@@ -313,7 +318,7 @@
       forward_variables_from(_host_common, "*")
       forward_variables_from(_pigweed_internal, "*")
       forward_variables_from(_os_specific_config, "*")
-      default_configs += _clang_default_configs
+      default_configs += _internal_clang_default_configs
     }
   },
   {
@@ -325,7 +330,7 @@
       forward_variables_from(_host_common, "*")
       forward_variables_from(_pigweed_internal, "*")
       forward_variables_from(_os_specific_config, "*")
-      default_configs += _clang_default_configs
+      default_configs += _internal_clang_default_configs
     }
   },
   {
@@ -337,7 +342,7 @@
       forward_variables_from(_host_common, "*")
       forward_variables_from(_pigweed_internal, "*")
       forward_variables_from(_os_specific_config, "*")
-      default_configs += _clang_default_configs
+      default_configs += _internal_clang_default_configs
     }
   },
   {
@@ -349,7 +354,7 @@
       forward_variables_from(_host_common, "*")
       forward_variables_from(_pigweed_internal, "*")
       forward_variables_from(_os_specific_config, "*")
-      default_configs += _gcc_default_configs
+      default_configs += _internal_gcc_default_configs
     }
   },
   {
@@ -361,7 +366,7 @@
       forward_variables_from(_host_common, "*")
       forward_variables_from(_pigweed_internal, "*")
       forward_variables_from(_os_specific_config, "*")
-      default_configs += _gcc_default_configs
+      default_configs += _internal_gcc_default_configs
     }
   },
   {
@@ -373,7 +378,7 @@
       forward_variables_from(_host_common, "*")
       forward_variables_from(_pigweed_internal, "*")
       forward_variables_from(_os_specific_config, "*")
-      default_configs += _gcc_default_configs
+      default_configs += _internal_gcc_default_configs
     }
   },
   {
@@ -385,7 +390,7 @@
       forward_variables_from(_host_common, "*")
       forward_variables_from(_pigweed_internal, "*")
       forward_variables_from(_os_specific_config, "*")
-      default_configs += _clang_default_configs
+      default_configs += _internal_clang_default_configs
 
       # Set the C++ standard to C++14 instead of the default (C++17).
       pw_toolchain_CXX_STANDARD = pw_toolchain_STANDARD.CXX14
@@ -405,7 +410,7 @@
       forward_variables_from(_host_common, "*")
       forward_variables_from(_pigweed_internal, "*")
       forward_variables_from(_os_specific_config, "*")
-      default_configs += _clang_default_configs
+      default_configs += _internal_clang_default_configs
 
       # Set the C++ standard to C++20 instead of the default.
       pw_toolchain_CXX_STANDARD = pw_toolchain_STANDARD.CXX20