39 lines
1.0 KiB
C
39 lines
1.0 KiB
C
|
// java-assert.h - Header file holding assertion definitions. -*- c++ -*-
|
||
|
|
||
|
/* Copyright (C) 1998, 1999 Cygnus Solutions
|
||
|
|
||
|
This file is part of libgcj.
|
||
|
|
||
|
This software is copyrighted work licensed under the terms of the
|
||
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||
|
details. */
|
||
|
|
||
|
#ifndef __JAVA_ASSERT_H__
|
||
|
#define __JAVA_ASSERT_H__
|
||
|
|
||
|
// This is a libgcj implementation header.
|
||
|
|
||
|
void _Jv_Abort (const char *, const char *, int, const char *)
|
||
|
__attribute__ ((__noreturn__));
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
#define _Jv_AssertDoCall(Message) _Jv_Abort (__FUNCTION__, __FILE__, __LINE__, Message)
|
||
|
|
||
|
#define JvAssertMessage(Expr, Message) \
|
||
|
do { if (! (Expr)) _Jv_AssertDoCall (Message); } while (0)
|
||
|
#define JvAssert(Expr) \
|
||
|
do { if (! (Expr)) _Jv_AssertDoCall (# Expr); } while (0)
|
||
|
|
||
|
#define JvFail(Message) _Jv_AssertDoCall (Message)
|
||
|
|
||
|
#else /* DEBUG */
|
||
|
|
||
|
#define _Jv_AssertDoCall(Message)
|
||
|
#define JvAssertMessage(Expr, Message)
|
||
|
#define JvAssert(Expr)
|
||
|
#define JvFail(Message) _Jv_Abort (0, 0, 0, Message)
|
||
|
|
||
|
#endif /* not DEBUG */
|
||
|
|
||
|
#endif /* __JAVA_ASSERT_H__ */
|