• Yedidya Feldblum's avatar
    Use C++'s standardized [[noreturn]] attribute · 9895ee08
    Yedidya Feldblum authored
    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
    9895ee08
FormatArg.h 6.08 KB