diff --git a/DEPS b/DEPS
index dd6f586be3505..257b613751c94 100644
--- a/DEPS
+++ b/DEPS
@@ -527,7 +527,7 @@ vars = {
 
   # If you change this, also update the libc++ revision in
   # //buildtools/deps_revisions.gni.
-  'libcxx_revision':       '4f05e20cbe1d02fa0871ac88b30eead9e38cab3a',
+  'libcxx_revision':       '6a83e4982509c31dc2231d19fa14a2ed90df881f',
 
   # GN CIPD package version.
   'gn_version': 'git_revision:6e8e0d6d4a151ab2ed9b4a35366e630c55888444',
diff --git a/buildtools/deps_revisions.gni b/buildtools/deps_revisions.gni
index b43c7c505c3a3..05b2b2519e287 100644
--- a/buildtools/deps_revisions.gni
+++ b/buildtools/deps_revisions.gni
@@ -5,5 +5,5 @@
 declare_args() {
   # Used to cause full rebuilds on libc++ rolls. This should be kept in sync
   # with the libcxx_revision var in //DEPS.
-  libcxx_revision = "4f05e20cbe1d02fa0871ac88b30eead9e38cab3a"
+  libcxx_revision = "6a83e4982509c31dc2231d19fa14a2ed90df881f"
 }
diff --git a/chrome/install_static/install_details.cc b/chrome/install_static/install_details.cc
index f99a867705fca..e82f890c29f16 100644
--- a/chrome/install_static/install_details.cc
+++ b/chrome/install_static/install_details.cc
@@ -62,9 +62,13 @@ void InstallDetails::SetForProcess(
 // static
 const InstallDetails::Payload* InstallDetails::GetPayload() {
   assert(g_module_details);
-  static_assert(std::is_pod<Payload>::value, "Payload must be a POD-struct");
-  static_assert(std::is_pod<InstallConstants>::value,
-                "InstallConstants must be a POD-struct");
+
+  // We're handing a pointer to a struct created in one module
+  // to a different module, with distinct allocation domains.
+  static_assert(std::is_standard_layout<Payload>::value,
+                "Payload must have standard layout");
+  static_assert(std::is_standard_layout<InstallConstants>::value,
+                "InstallConstants must have standard layout");
   return g_module_details->payload_;
 }
 
diff --git a/components/crash/core/app/crash_export_thunks.cc b/components/crash/core/app/crash_export_thunks.cc
index 7c8495de4bb31..797fea9f170ec 100644
--- a/components/crash/core/app/crash_export_thunks.cc
+++ b/components/crash/core/app/crash_export_thunks.cc
@@ -26,8 +26,8 @@ void RequestSingleCrashUpload_ExportThunk(const char* local_id) {
 
 size_t GetCrashReports_ExportThunk(crash_reporter::Report* reports,
                                    size_t reports_size) {
-  static_assert(std::is_pod<crash_reporter::Report>::value,
-                "crash_reporter::Report must be POD");
+  static_assert(std::is_trivially_copyable<crash_reporter::Report>::value,
+                "crash_reporter::Report must be trivially copyable");
   // Since this could be called across module boundaries, retrieve the full
   // list of reports into this vector, and then manually copy however much fits
   // into the caller's copy.
diff --git a/components/cronet/android/cronet_context_adapter.cc b/components/cronet/android/cronet_context_adapter.cc
index 8007d4d94c9f5..5a896d03a60c5 100644
--- a/components/cronet/android/cronet_context_adapter.cc
+++ b/components/cronet/android/cronet_context_adapter.cc
@@ -291,8 +291,8 @@ static void JNI_CronetUrlRequestContext_AddPkp(
           jinclude_subdomains,
           base::Time::UnixEpoch() + base::Milliseconds(jexpiration_time)));
   for (auto bytes_array : jhashes.ReadElements<jbyteArray>()) {
-    static_assert(std::is_pod<net::SHA256HashValue>::value,
-                  "net::SHA256HashValue is not POD");
+    static_assert(std::is_trivially_copyable<net::SHA256HashValue>::value,
+                  "net::SHA256HashValue is not trivially copyable");
     static_assert(sizeof(net::SHA256HashValue) * CHAR_BIT == 256,
                   "net::SHA256HashValue contains overhead");
     if (env->GetArrayLength(bytes_array.obj()) !=
diff --git a/third_party/libc++/src b/third_party/libc++/src
index 4f05e20cbe1d0..6a83e4982509c 160000
--- a/third_party/libc++/src
+++ b/third_party/libc++/src
@@ -1 +1 @@
-Subproject commit 4f05e20cbe1d02fa0871ac88b30eead9e38cab3a
+Subproject commit 6a83e4982509c31dc2231d19fa14a2ed90df881f