• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*---------------------------------------------------------------------------*
2  *  passert.h  *
3  *                                                                           *
4  *  Copyright 2007, 2008 Nuance Communciations, Inc.                               *
5  *                                                                           *
6  *  Licensed under the Apache License, Version 2.0 (the 'License');          *
7  *  you may not use this file except in compliance with the License.         *
8  *                                                                           *
9  *  You may obtain a copy of the License at                                  *
10  *      http://www.apache.org/licenses/LICENSE-2.0                           *
11  *                                                                           *
12  *  Unless required by applicable law or agreed to in writing, software      *
13  *  distributed under the License is distributed on an 'AS IS' BASIS,        *
14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
15  *  See the License for the specific language governing permissions and      *
16  *  limitations under the License.                                           *
17  *                                                                           *
18  *---------------------------------------------------------------------------*/
19 
20 #ifndef PASSERT_H
21 #define PASSERT_H
22 
23 
24 
25 /**
26  * @addtogroup ESR_PortableModule ESR_Portable API functions
27  *
28  * @{
29  */
30 
31 #if defined(_WIN32) || defined(POSIX)
32 /**
33  * Checks if platform supports ASSERT.
34  */
35 #define HAS_ASSERT
36 #endif
37 
38 #if defined(HAS_ASSERT)
39 
40 #include <assert.h>
41 
42 /**
43  * Portable assert().
44  */
45 #define passert(exp) assert(exp)
46 
47 #elif defined(NDEBUG)
48 
49 #define passert(exp)
50 
51 #else
52 
53 /**
54 * Portable assert().
55 */
56 #define passert(exp) do { \
57     if (!(exp)) \
58     { \
59       pfprintf(PSTDERR, __FILE__ "(%d): " #exp " failed.\n",__LINE__); \
60       abort(); \
61     } \
62   } \
63   while(0)
64 
65 #endif  /* HAS_ASSERT */
66 
67 /**
68  * @}
69  */
70 
71 #endif
72