Check for unstable types in IPC messages.

We want IPC messages to be stable so that 32-bit and 64-bit processes
can talk to each other. This change adds a check to find-bad-constructs
Clang plugin to detect usage of the following unstable types in IPC
messages:

1. Types: long / unsigned long (but not typedefs to)
2. Typedefs: intmax_t, uintmax_t, intptr_t, uintptr_t, wint_t, size_t,
   rsize_t, ssize_t, ptrdiff_t, dev_t, off_t, clock_t, time_t, suseconds_t
   (including typedefs to)
3. Any template referencing the above (e.g. std::vector<size_t>)

BUG=581409

Review URL: https://codereview.chromium.org/1810243002

Cr-Commit-Position: refs/heads/master@{#385469}


CrOS-Libchrome-Original-Commit: 2bc894640e0423cad921aed8d234adc375999771
2 files changed
tree: 59a0e5335ee2d56eb2b30e5b6a538065bfd0f109
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/