Add static_cast<void*> to the sources for trivial relocations to avoid spurious -Wdynamic-class-memaccess errors in the presence of other compilation errors.

PiperOrigin-RevId: 479625866
Change-Id: Ia10ad35a2f58ffb3f36f996d357d5e126b181e1c
diff --git a/absl/container/internal/common_policy_traits.h b/absl/container/internal/common_policy_traits.h
index c99e68f..0fd4866 100644
--- a/absl/container/internal/common_policy_traits.h
+++ b/absl/container/internal/common_policy_traits.h
@@ -93,11 +93,12 @@
                             slot_type* old_slot, char) {
 #if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
     if (absl::is_trivially_relocatable<value_type>()) {
-      // TODO(b/247130232): remove cast after fixing class-memaccess warning.
+      // TODO(b/247130232,b/251814870): remove casts after fixing warnings.
       std::memcpy(static_cast<void*>(
                       std::launder(const_cast<std::remove_const_t<value_type>*>(
                           &element(new_slot)))),
-                  &element(old_slot), sizeof(value_type));
+                  static_cast<const void*>(&element(old_slot)),
+                  sizeof(value_type));
       return;
     }
 #endif
diff --git a/absl/container/internal/container_memory.h b/absl/container/internal/container_memory.h
index c29c533..bfa4ff9 100644
--- a/absl/container/internal/container_memory.h
+++ b/absl/container/internal/container_memory.h
@@ -428,9 +428,10 @@
     emplace(new_slot);
 #if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
     if (absl::is_trivially_relocatable<value_type>()) {
-      // TODO(b/247130232): remove cast after fixing class-memaccess warning.
+      // TODO(b/247130232,b/251814870): remove casts after fixing warnings.
       std::memcpy(static_cast<void*>(std::launder(&new_slot->value)),
-                  &old_slot->value, sizeof(value_type));
+                  static_cast<const void*>(&old_slot->value),
+                  sizeof(value_type));
       return;
     }
 #endif