Edit File by line
/home/barbar84/public_h.../wp-conte.../plugins/sujqvwi/AnonR/anonr.TX.../proc/self/root/usr/include
File: assert.h
/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
[0] Fix | Delete
This file is part of the GNU C Library.
[1] Fix | Delete
[2] Fix | Delete
The GNU C Library is free software; you can redistribute it and/or
[3] Fix | Delete
modify it under the terms of the GNU Lesser General Public
[4] Fix | Delete
License as published by the Free Software Foundation; either
[5] Fix | Delete
version 2.1 of the License, or (at your option) any later version.
[6] Fix | Delete
[7] Fix | Delete
The GNU C Library is distributed in the hope that it will be useful,
[8] Fix | Delete
but WITHOUT ANY WARRANTY; without even the implied warranty of
[9] Fix | Delete
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
[10] Fix | Delete
Lesser General Public License for more details.
[11] Fix | Delete
[12] Fix | Delete
You should have received a copy of the GNU Lesser General Public
[13] Fix | Delete
License along with the GNU C Library; if not, see
[14] Fix | Delete
<http://www.gnu.org/licenses/>. */
[15] Fix | Delete
[16] Fix | Delete
/*
[17] Fix | Delete
* ISO C99 Standard: 7.2 Diagnostics <assert.h>
[18] Fix | Delete
*/
[19] Fix | Delete
[20] Fix | Delete
#ifdef _ASSERT_H
[21] Fix | Delete
[22] Fix | Delete
# undef _ASSERT_H
[23] Fix | Delete
# undef assert
[24] Fix | Delete
# undef __ASSERT_VOID_CAST
[25] Fix | Delete
[26] Fix | Delete
# ifdef __USE_GNU
[27] Fix | Delete
# undef assert_perror
[28] Fix | Delete
# endif
[29] Fix | Delete
[30] Fix | Delete
#endif /* assert.h */
[31] Fix | Delete
[32] Fix | Delete
#define _ASSERT_H 1
[33] Fix | Delete
#include <features.h>
[34] Fix | Delete
[35] Fix | Delete
#if defined __cplusplus && __GNUC_PREREQ (2,95)
[36] Fix | Delete
# define __ASSERT_VOID_CAST static_cast<void>
[37] Fix | Delete
#else
[38] Fix | Delete
# define __ASSERT_VOID_CAST (void)
[39] Fix | Delete
#endif
[40] Fix | Delete
[41] Fix | Delete
/* void assert (int expression);
[42] Fix | Delete
[43] Fix | Delete
If NDEBUG is defined, do nothing.
[44] Fix | Delete
If not, and EXPRESSION is zero, print an error message and abort. */
[45] Fix | Delete
[46] Fix | Delete
#ifdef NDEBUG
[47] Fix | Delete
[48] Fix | Delete
# define assert(expr) (__ASSERT_VOID_CAST (0))
[49] Fix | Delete
[50] Fix | Delete
/* void assert_perror (int errnum);
[51] Fix | Delete
[52] Fix | Delete
If NDEBUG is defined, do nothing. If not, and ERRNUM is not zero, print an
[53] Fix | Delete
error message with the error text for ERRNUM and abort.
[54] Fix | Delete
(This is a GNU extension.) */
[55] Fix | Delete
[56] Fix | Delete
# ifdef __USE_GNU
[57] Fix | Delete
# define assert_perror(errnum) (__ASSERT_VOID_CAST (0))
[58] Fix | Delete
# endif
[59] Fix | Delete
[60] Fix | Delete
#else /* Not NDEBUG. */
[61] Fix | Delete
[62] Fix | Delete
__BEGIN_DECLS
[63] Fix | Delete
[64] Fix | Delete
/* This prints an "Assertion failed" message and aborts. */
[65] Fix | Delete
extern void __assert_fail (const char *__assertion, const char *__file,
[66] Fix | Delete
unsigned int __line, const char *__function)
[67] Fix | Delete
__THROW __attribute__ ((__noreturn__));
[68] Fix | Delete
[69] Fix | Delete
/* Likewise, but prints the error text for ERRNUM. */
[70] Fix | Delete
extern void __assert_perror_fail (int __errnum, const char *__file,
[71] Fix | Delete
unsigned int __line, const char *__function)
[72] Fix | Delete
__THROW __attribute__ ((__noreturn__));
[73] Fix | Delete
[74] Fix | Delete
[75] Fix | Delete
/* The following is not at all used here but needed for standard
[76] Fix | Delete
compliance. */
[77] Fix | Delete
extern void __assert (const char *__assertion, const char *__file, int __line)
[78] Fix | Delete
__THROW __attribute__ ((__noreturn__));
[79] Fix | Delete
[80] Fix | Delete
[81] Fix | Delete
__END_DECLS
[82] Fix | Delete
[83] Fix | Delete
/* When possible, define assert so that it does not add extra
[84] Fix | Delete
parentheses around EXPR. Otherwise, those added parentheses would
[85] Fix | Delete
suppress warnings we'd expect to be detected by gcc's -Wparentheses. */
[86] Fix | Delete
# if defined __cplusplus
[87] Fix | Delete
# define assert(expr) \
[88] Fix | Delete
(static_cast <bool> (expr) \
[89] Fix | Delete
? void (0) \
[90] Fix | Delete
: __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION))
[91] Fix | Delete
# elif !defined __GNUC__ || defined __STRICT_ANSI__
[92] Fix | Delete
# define assert(expr) \
[93] Fix | Delete
((expr) \
[94] Fix | Delete
? __ASSERT_VOID_CAST (0) \
[95] Fix | Delete
: __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION))
[96] Fix | Delete
# else
[97] Fix | Delete
/* The first occurrence of EXPR is not evaluated due to the sizeof,
[98] Fix | Delete
but will trigger any pedantic warnings masked by the __extension__
[99] Fix | Delete
for the second occurrence. The ternary operator is required to
[100] Fix | Delete
support function pointers and bit fields in this context, and to
[101] Fix | Delete
suppress the evaluation of variable length arrays. */
[102] Fix | Delete
# define assert(expr) \
[103] Fix | Delete
((void) sizeof ((expr) ? 1 : 0), __extension__ ({ \
[104] Fix | Delete
if (expr) \
[105] Fix | Delete
; /* empty */ \
[106] Fix | Delete
else \
[107] Fix | Delete
__assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION); \
[108] Fix | Delete
}))
[109] Fix | Delete
# endif
[110] Fix | Delete
[111] Fix | Delete
# ifdef __USE_GNU
[112] Fix | Delete
# define assert_perror(errnum) \
[113] Fix | Delete
(!(errnum) \
[114] Fix | Delete
? __ASSERT_VOID_CAST (0) \
[115] Fix | Delete
: __assert_perror_fail ((errnum), __FILE__, __LINE__, __ASSERT_FUNCTION))
[116] Fix | Delete
# endif
[117] Fix | Delete
[118] Fix | Delete
/* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__'
[119] Fix | Delete
which contains the name of the function currently being defined.
[120] Fix | Delete
This is broken in G++ before version 2.6.
[121] Fix | Delete
C9x has a similar variable called __func__, but prefer the GCC one since
[122] Fix | Delete
it demangles C++ function names. */
[123] Fix | Delete
# if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4)
[124] Fix | Delete
# define __ASSERT_FUNCTION __extension__ __PRETTY_FUNCTION__
[125] Fix | Delete
# else
[126] Fix | Delete
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
[127] Fix | Delete
# define __ASSERT_FUNCTION __func__
[128] Fix | Delete
# else
[129] Fix | Delete
# define __ASSERT_FUNCTION ((const char *) 0)
[130] Fix | Delete
# endif
[131] Fix | Delete
# endif
[132] Fix | Delete
[133] Fix | Delete
#endif /* NDEBUG. */
[134] Fix | Delete
[135] Fix | Delete
[136] Fix | Delete
#if defined __USE_ISOC11 && !defined __cplusplus
[137] Fix | Delete
# undef static_assert
[138] Fix | Delete
# define static_assert _Static_assert
[139] Fix | Delete
#endif
[140] Fix | Delete
[141] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function