Blame lib/driver/cdio_assert.h

Packit dd8086
/*
Packit dd8086
  Copyright (C) 2008, 2011, 2012 Rocky Bernstein <rocky@gnu.org>
Packit dd8086
  Copyright (C) 2000 Herbert Valerio Riedel <hvr@gnu.org>
Packit dd8086
Packit dd8086
  This program is free software: you can redistribute it and/or modify
Packit dd8086
  it under the terms of the GNU General Public License as published by
Packit dd8086
  the Free Software Foundation, either version 3 of the License, or
Packit dd8086
  (at your option) any later version.
Packit dd8086
Packit dd8086
  This program is distributed in the hope that it will be useful,
Packit dd8086
  but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit dd8086
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit dd8086
  GNU General Public License for more details.
Packit dd8086
Packit dd8086
  You should have received a copy of the GNU General Public License
Packit dd8086
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit dd8086
*/
Packit dd8086

Packit dd8086
#ifndef CDIO_ASSERT_H_
Packit dd8086
#define CDIO_ASSERT_H_
Packit dd8086
Packit dd8086
#if defined(__GNUC__) && !defined(__MINGW32__)
Packit dd8086
Packit dd8086
#if defined(HAVE_CONFIG_H) && !defined(__CDIO_CONFIG_H__)
Packit dd8086
# include "config.h"
Packit dd8086
# define __CDIO_CONFIG_H__ 1
Packit dd8086
#endif
Packit dd8086
Packit dd8086
#include <cdio/types.h>
Packit dd8086
#include <cdio/logging.h>
Packit dd8086
Packit dd8086
#define cdio_assert(expr) \
Packit dd8086
 { \
Packit dd8086
   if (GNUC_UNLIKELY (!(expr))) cdio_log (CDIO_LOG_ASSERT, \
Packit dd8086
     "file %s: line %d (%s): assertion failed: (%s)", \
Packit dd8086
     __FILE__, __LINE__, __PRETTY_FUNCTION__, #expr); \
Packit dd8086
 }
Packit dd8086
Packit dd8086
#define cdio_assert_not_reached() \
Packit dd8086
 { \
Packit dd8086
   cdio_log (CDIO_LOG_ASSERT, \
Packit dd8086
     "file %s: line %d (%s): should not be reached", \
Packit dd8086
     __FILE__, __LINE__, __PRETTY_FUNCTION__); \
Packit dd8086
 }
Packit dd8086
Packit dd8086
#else /* non GNU C */
Packit dd8086
Packit dd8086
#include <assert.h>
Packit dd8086
Packit dd8086
#define cdio_assert(expr) \
Packit dd8086
 assert(expr)
Packit dd8086
Packit dd8086
#define cdio_assert_not_reached() \
Packit dd8086
 assert(0)
Packit dd8086
Packit dd8086
#endif
Packit dd8086
Packit dd8086
#endif /* CDIO_ASSERT_H_ */