zephyr/lib/libc/minimal/include/assert.h
Thiago Macieira 034b458141 libc: Add support for static_assert
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>
2017-10-25 10:43:38 -07:00

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__ */