Blame gl/tests/_Noreturn.h

Packit Service 4684c1
/* A C macro for declaring that a function does not return.
Packit Service 4684c1
   Copyright (C) 2011-2020 Free Software Foundation, Inc.
Packit Service 4684c1
Packit Service 4684c1
   This program is free software: you can redistribute it and/or modify it
Packit Service 4684c1
   under the terms of the GNU General Public License as published
Packit Service 4684c1
   by the Free Software Foundation; either version 3 of the License, or
Packit Service 4684c1
   (at your option) any later version.
Packit Service 4684c1
Packit Service 4684c1
   This program is distributed in the hope that it will be useful,
Packit Service 4684c1
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 4684c1
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 4684c1
   General Public License for more details.
Packit Service 4684c1
Packit Service 4684c1
   You should have received a copy of the GNU General Public License
Packit Service 4684c1
   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
Packit Service 4684c1
Packit Service 4684c1
#ifndef _Noreturn
Packit Service 4684c1
# if (defined __cplusplus \
Packit Service 4684c1
      && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
Packit Service 4684c1
          || (defined _MSC_VER && 1900 <= _MSC_VER)) \
Packit Service 4684c1
      && 0)
Packit Service 4684c1
    /* [[noreturn]] is not practically usable, because with it the syntax
Packit Service 4684c1
         extern _Noreturn void func (...);
Packit Service 4684c1
       would not be valid; such a declaration would only be valid with 'extern'
Packit Service 4684c1
       and '_Noreturn' swapped, or without the 'extern' keyword.  However, some
Packit Service 4684c1
       AIX system header files and several gnulib header files use precisely
Packit Service 4684c1
       this syntax with 'extern'.  */
Packit Service 4684c1
#  define _Noreturn [[noreturn]]
Packit Service 4684c1
# elif ((!defined __cplusplus || defined __clang__)                     \
Packit Service 4684c1
        && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0)  \
Packit Service 4684c1
            || 4 < __GNUC__ + (7 <= __GNUC_MINOR__) \
Packit Service 4684c1
            || (defined __apple_build_version__ \
Packit Service 4684c1
                ? 6000000 <= __apple_build_version__ \
Packit Service 4684c1
                : 3 < __clang_major__ + (5 <= __clang_minor__))))
Packit Service 4684c1
   /* _Noreturn works as-is.  */
Packit Service 4684c1
# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
Packit Service 4684c1
#  define _Noreturn __attribute__ ((__noreturn__))
Packit Service 4684c1
# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
Packit Service 4684c1
#  define _Noreturn __declspec (noreturn)
Packit Service 4684c1
# else
Packit Service 4684c1
#  define _Noreturn
Packit Service 4684c1
# endif
Packit Service 4684c1
#endif