Disable cause-SIGFPE test on Arm processors

The way that division operations behave have changed between Armv7
and Armv8. On the later one, divisions by zero will *not* yield an
exception of any kind (for both a 32bit and 64bit app), for hardware
integer divide operation.

On Arm processors exceptions may also be a factor of:
 - if the hardware implementation supports it.
 - if the kernel has set the proper internal state registers/flags.
 - C library implementations (e.g. libgcc x clang_rt).

Aside that, a division by zero is within the realm of UD (Undefined
Behavior) in C/C++.

Since there are two categories of tests (explicit raise x caused by
instructions), it just makes sense to disable the second for Arm
since there is no reliable way to cause a SIGFPE without an explicit
raise() POSIX call.

For x86, we keep the previous implementation idea but streamlined
the code by deploying 'volatile' to ensure that the compiler
won't optimize away the result of the division (i.e no need
to call stat() and fstat()).

Bug: chromium:919548, chromium:1184398
Change-Id: I3058b84d18bfa6ea2a1d5943c9b737b65e4723a3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3213431
Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
GitOrigin-RevId: 07a6b707559004bac4b7d3ccb166f3aa87fec43b
1 file changed
tree: 0f34ce3190ea8f64dfda9443298742527a9c15fb
  1. .clang-format
  2. .gitattributes
  3. .gitignore
  4. .gn
  5. .style.yapf
  6. .vpython
  8. BUILD.gn
  10. DEPS
  12. README.md
  13. build/
  14. client/
  15. codereview.settings
  16. compat/
  17. doc/
  18. handler/
  19. infra/
  20. minidump/
  21. navbar.md
  22. package.h
  23. snapshot/
  24. test/
  25. third_party/
  26. tools/
  27. util/


Crashpad is a crash-reporting system.


Source Code

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

Other Links