Annotate TerminateCurrentProcessImmediately() as [[noreturn]].

This allows calling code to be structured to take advantage of the call
being guaranteed never to return (e.g. by omitting unreachable 'return'
statements or switch 'break's), in contrast to the OS-native APIs the
call uses internally.

To support this, the IMMEDIATE_CRASH() macro definition under the
Windows/Clang build is updated to use the __builtin_unreachable()
intrinsic, and TerminateCurrentProcessImmediately() switched from using
CHECK(false) to IMMEDIATE_CRASH(), to match the [[noreturn]] promise.

Change-Id: I83734c3547ab75456bb60bda28a7207ccb493384
Reviewed-on: https://chromium-review.googlesource.com/898189
Commit-Queue: Wez <wez@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534911}

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