From fa4d7c92b770e2375b14b4c53edf262534415ab8 Mon Sep 17 00:00:00 2001 From: Stephan Hartmann Date: Tue, 31 Oct 2023 15:43:33 +0100 Subject: [PATCH] libstdc++: replace deprecated std::is_pod std::is_pod is deprecated since C++20. Replace with std::trivial and std::is_standard_layout. Avoids a lot of warnings. Bug: chromium:957519 Change-Id: Idb4bde7401c14c0896a84c357ec668b9916f613e Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325484 Reviewed-by: Philip Eliasson Reviewed-by: Danil Chapovalov Commit-Queue: Philip Eliasson Cr-Commit-Position: refs/heads/main@{#41117} --- .../video_coding/include/video_codec_interface.h | 16 ++++++++++++---- .../fuzzers/rtp_frame_reference_finder_fuzzer.cc | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/modules/video_coding/include/video_codec_interface.h b/modules/video_coding/include/video_codec_interface.h index c6522fcc6b..987e1b623e 100644 --- a/modules/video_coding/include/video_codec_interface.h +++ b/modules/video_coding/include/video_codec_interface.h @@ -50,7 +50,9 @@ struct CodecSpecificInfoVP8 { size_t updatedBuffers[kBuffersCount]; size_t updatedBuffersCount; }; -static_assert(std::is_pod::value, ""); +static_assert(std::is_trivial_v && + std::is_standard_layout_v, + ""); // Hack alert - the code assumes that thisstruct is memset when constructed. struct CodecSpecificInfoVP9 { @@ -79,7 +81,9 @@ struct CodecSpecificInfoVP9 { uint8_t num_ref_pics; uint8_t p_diff[kMaxVp9RefPics]; }; -static_assert(std::is_pod::value, ""); +static_assert(std::is_trivial_v && + std::is_standard_layout_v, + ""); // Hack alert - the code assumes that thisstruct is memset when constructed. struct CodecSpecificInfoH264 { @@ -88,14 +92,18 @@ struct CodecSpecificInfoH264 { bool base_layer_sync; bool idr_frame; }; -static_assert(std::is_pod::value, ""); +static_assert(std::is_trivial_v && + std::is_standard_layout_v, + ""); union CodecSpecificInfoUnion { CodecSpecificInfoVP8 VP8; CodecSpecificInfoVP9 VP9; CodecSpecificInfoH264 H264; }; -static_assert(std::is_pod::value, ""); +static_assert(std::is_trivial_v && + std::is_standard_layout_v, + ""); // Note: if any pointers are added to this struct or its sub-structs, it // must be fitted with a copy-constructor. This is because it is copied diff --git a/test/fuzzers/rtp_frame_reference_finder_fuzzer.cc b/test/fuzzers/rtp_frame_reference_finder_fuzzer.cc index ea66c4a1c8..93673f0b8e 100644 --- a/test/fuzzers/rtp_frame_reference_finder_fuzzer.cc +++ b/test/fuzzers/rtp_frame_reference_finder_fuzzer.cc @@ -23,7 +23,7 @@ class DataReader { template void CopyTo(T* object) { - static_assert(std::is_pod(), ""); + static_assert(std::is_trivial_v && std::is_standard_layout_v, ""); uint8_t* destination = reinterpret_cast(object); size_t object_size = sizeof(T); size_t num_bytes = std::min(size_ - offset_, object_size);