wine/include/msvcrt/assert.h
Jinoh Kang b6a26817bc include/msvcrt: Add noreturn attribute to _assert.
This informs the compiler that no code following an assertion failure
will execute (unless NDEBUG is defined), which increases the accuracy of
compiler warnings and static analyses.

For assert.h, put DECLSPEC_NORETURN before the return type in the
function declaration to remain consistent with other MSVCRT function
declarations.
2023-01-30 18:55:57 +01:00

38 lines
1.1 KiB
C

/*
* Assert support
*
* Copyright 2011 Alexandre Julliard
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <corecrt.h>
#ifdef __cplusplus
extern "C" {
#endif
#undef assert
#ifdef NDEBUG
#define assert(_expr) ((void)0)
#else
_ACRTIMP DECLSPEC_NORETURN void __cdecl _assert(const char *, const char *, unsigned int);
#define assert(_expr) (void)((!!(_expr)) || (_assert(#_expr, __FILE__, __LINE__), 0))
#endif
#ifdef __cplusplus
}
#endif