1 /*
2  * Copyright (c) 2014, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef __CASSERT_H__
8 #define __CASSERT_H__
9 
10 /*******************************************************************************
11  * Macro to flag a compile time assertion. It uses the preprocessor to generate
12  * an invalid C construct if 'cond' evaluates to false.
13  * The following compilation error is triggered if the assertion fails:
14  * "error: size of array 'msg' is negative"
15  * The 'unused' attribute ensures that the unused typedef does not emit a
16  * compiler warning.
17  ******************************************************************************/
18 #define CASSERT(cond, msg)	\
19 	typedef char msg[(cond) ? 1 : -1] __unused
20 
21 #endif /* __CASSERT_H__ */
22