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: Ie911ad2eb8b84374d57cff07c775ff4c5cbf000f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2949650
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
GitOrigin-RevId: 8804387c75b5ea6b2ac7ef978104972996c721d1
1 file changed
tree: b0a2667f1b3739f405305c52a0957c988bc25486
  1. .clang-format
  2. .gitattributes
  3. .gitignore
  4. .gn
  5. .style.yapf
  6. .vpython
  7. AUTHORS
  8. BUILD.gn
  9. CONTRIBUTORS
  10. DEPS
  11. LICENSE
  12. README.md
  13. build/
  14. client/
  15. codereview.settings
  16. compat/
  17. crashpad.gyp
  18. doc/
  19. handler/
  20. infra/
  21. minidump/
  22. navbar.md
  23. package.h
  24. snapshot/
  25. test/
  26. third_party/
  27. tools/
  28. util/
README.md

Crashpad

Crashpad is a crash-reporting system.

Documentation

Source Code

Crashpad’s source code is hosted in a Git repository at https://chromium.googlesource.com/crashpad/crashpad.

Other Links