/*---------------------------------------------------------------------------* * passert.h * * * * Copyright 2007, 2008 Nuance Communciations, Inc. * * * * Licensed under the Apache License, Version 2.0 (the 'License'); * * you may not use this file except in compliance with the License. * * * * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an 'AS IS' BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. * * * *---------------------------------------------------------------------------*/ #ifndef PASSERT_H #define PASSERT_H /** * @addtogroup ESR_PortableModule ESR_Portable API functions * * @{ */ #if defined(_WIN32) || defined(POSIX) /** * Checks if platform supports ASSERT. */ #define HAS_ASSERT #endif #if defined(HAS_ASSERT) #include <assert.h> /** * Portable assert(). */ #define passert(exp) assert(exp) #elif defined(NDEBUG) #define passert(exp) #else /** * Portable assert(). */ #define passert(exp) do { \ if (!(exp)) \ { \ pfprintf(PSTDERR, __FILE__ "(%d): " #exp " failed.\n",__LINE__); \ abort(); \ } \ } \ while(0) #endif /* HAS_ASSERT */ /** * @} */ #endif