From dfb3b596607ab5e0707de3376fe70e1901173319 Mon Sep 17 00:00:00 2001 From: Peter Kasting Date: Thu, 5 May 2022 15:19:17 -0700 Subject: [PATCH] In C++20, atomics are value-initialized by default. ATOMIC_FLAG_INIT is thus deprecated. Feature-test for this. Bug: chromium:1284275 Change-Id: I000d9d8ba5248bf72390b25b2165094faf5aa3db Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3629949 Commit-Queue: Mark Mentovai Reviewed-by: Mark Mentovai --- handler/handler_main.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/handler/handler_main.cc b/handler/handler_main.cc index 48ef8b65..c6ef7693 100644 --- a/handler/handler_main.cc +++ b/handler/handler_main.cc @@ -287,7 +287,12 @@ bool AddKeyValueToMap(std::map* map, // a normal exit, or if a CallMetricsRecordNormalExit object is destroyed after // something else logs an exit event. void MetricsRecordExit(Metrics::LifetimeMilestone milestone) { +#if !defined(__cpp_lib_atomic_value_initialization) || \ + __cpp_lib_atomic_value_initialization < 201911L static std::atomic_flag metrics_exit_recorded = ATOMIC_FLAG_INIT; +#else + static std::atomic_flag metrics_exit_recorded; +#endif if (!metrics_exit_recorded.test_and_set()) { Metrics::HandlerLifetimeMilestone(milestone); }