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