Use C++'s standardized [[noreturn]] attribute
Summary:Use C++'s standardized `[[noreturn]]` attribute.
All supported compilers (and some unsupported compilers) also support the standardized syntax.
GCC >= 4.8, Clang >= 3.0, and MSVC >= 2015 have direct support for the C++'s standardized way of writing the attribute.
Clang - http://goo.gl/ftJGVM
GCC 4.8.2 - http://goo.gl/ORCVOD
ICC 13.0.1 - http://goo.gl/I5tn5I
MSVC 2015 - https://msdn.microsoft.com/en-us/library/hh567368.aspx
(Regardling Clang, earlier versions may support it. 3.0 was the earliest Clang version listed at godbolt.com, so that's as far back as I went.)
Therefore, we no longer need to use the compiler-specific syntaxes, or use preprocessor macros with per-compiler definitions:
__attribute__((__noreturn__))
__attribute__((noreturn))
__declspec(noreturn)
Reviewed By: Orvid
Differential Revision:
D3073621
fb-gh-sync-id:
32d4771d1bf1974693b8574fa2d39c9559872945
shipit-source-id:
32d4771d1bf1974693b8574fa2d39c9559872945