The C11 standard requires this. From 7.2 "Diagnostics <assert.h>" paragraph 1: > The header <assert.h> defines the assert and static_assert macros... paragraph 3: > The macro > static_assert > expands to _Static_assert. Since static_assert is a keyword in C++11, don't define it if C++. Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
34 lines
512 B
C
34 lines
512 B
C
/*
|
|
* Copyright (c) 2016 Intel Corporation
|
|
* Copyright (c) 2016, Freescale Semiconductor, Inc.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef __INC_assert_h__
|
|
#define __INC_assert_h__
|
|
|
|
#include <misc/__assert.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#else
|
|
#define static_assert _Static_assert
|
|
#endif
|
|
|
|
#ifndef NDEBUG
|
|
#ifndef assert
|
|
#define assert(test) __ASSERT_NO_MSG(test)
|
|
#endif
|
|
#else
|
|
#ifndef assert
|
|
#define assert(test) ((void)0)
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __INC_assert_h__ */
|