Home | History | Annotate | Download | only in lib
      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