From 8804387c75b5ea6b2ac7ef978104972996c721d1 Mon Sep 17 00:00:00 2001 From: Peter Kasting Date: Wed, 9 Jun 2021 07:01:18 -0700 Subject: [PATCH] Fix -Wc++11-narrowing in crashpad. timeval's first member's type is __kernel_old_time_t on at least Windows; this is a 32-bit type as opposed to time_t, which is a 64-bit type. As a result, casting directly to time_t results in a truncation, triggering the warning. It's not possible to cast directly to __kernel_old_time_t, since that type is not exposed here. Instead, cast to the underlying type, long, which should work correctly on all platforms. This has Year 2038 problems (which is why time_t is switching to 64-bit), which I suspect would be best fixed by a larger change like moving away from using timeval anywhere (?). I'm not really certain what all would be involved in trying to make this whole pipeline Y2038-safe, so I haven't attempted to tackle this. Bug: chromium:1216696 Change-Id: Ia335a488175b1d8e851c94b56705530bb4e421af Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2949650 Commit-Queue: Peter Kasting Commit-Queue: Mark Mentovai Reviewed-by: Mark Mentovai --- minidump/minidump_misc_info_writer_test.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/minidump/minidump_misc_info_writer_test.cc b/minidump/minidump_misc_info_writer_test.cc index 10d5c9e2..18ac2966 100644 --- a/minidump/minidump_misc_info_writer_test.cc +++ b/minidump/minidump_misc_info_writer_test.cc @@ -774,12 +774,12 @@ TEST(MinidumpMiscInfoWriter, InitializeFromSnapshot) { debug_build_string_utf16.c_str(), base::size(expect_misc_info.DbgBldStr)); - const timeval kStartTime = - { static_cast(expect_misc_info.ProcessCreateTime), 0 }; - const timeval kUserCPUTime = - { static_cast(expect_misc_info.ProcessUserTime), 0 }; - const timeval kSystemCPUTime = - { static_cast(expect_misc_info.ProcessKernelTime), 0 }; + const timeval kStartTime = { + static_cast(expect_misc_info.ProcessCreateTime), 0}; + const timeval kUserCPUTime = { + static_cast(expect_misc_info.ProcessUserTime), 0}; + const timeval kSystemCPUTime = { + static_cast(expect_misc_info.ProcessKernelTime), 0}; TestProcessSnapshot process_snapshot; process_snapshot.SetProcessID(expect_misc_info.ProcessId);