Home | History | Annotate | Line # | Download | only in common
      1 /*  This file is part of the program GDB.
      2 
      3     Copyright (C) 1997-2024 Free Software Foundation, Inc.
      4 
      5     This program is free software; you can redistribute it and/or modify
      6     it under the terms of the GNU General Public License as published by
      7     the Free Software Foundation; either version 3 of the License, or
      8     (at your option) any later version.
      9 
     10     This program is distributed in the hope that it will be useful,
     11     but WITHOUT ANY WARRANTY; without even the implied warranty of
     12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13     GNU General Public License for more details.
     14 
     15     You should have received a copy of the GNU General Public License
     16     along with this program.  If not, see <http://www.gnu.org/licenses/>.
     17 
     18     */
     19 
     20 
     21 #ifndef SIM_ASSERT_H
     22 #define SIM_ASSERT_H
     23 
     24 #include "libiberty.h"
     25 
     26 /* The subtle difference between SIM_ASSERT and ASSERT is that
     27    SIM_ASSERT passes `sd' to sim_io_error for the SIM_DESC,
     28    ASSERT passes NULL.  */
     29 
     30 #if !defined (SIM_ASSERT)
     31 #if defined (WITH_ASSERT)
     32 #include "sim-io.h"
     33 #define SIM_ASSERT(EXPRESSION) \
     34 do \
     35   { \
     36     if (WITH_ASSERT) \
     37       { \
     38         if (!(EXPRESSION)) \
     39           { \
     40             /* report the failure */ \
     41             sim_io_error (sd, "%s:%d: assertion failed - %s", \
     42                           lbasename (__FILE__), __LINE__, #EXPRESSION); \
     43           } \
     44       } \
     45   } \
     46 while (0)
     47 #else
     48 #define SIM_ASSERT(EXPRESSION) do { /*nothing*/; } while (0)
     49 #endif
     50 #endif
     51 
     52 #if !defined (ASSERT)
     53 #if defined (WITH_ASSERT)
     54 #include "sim-io.h"
     55 #define ASSERT(EXPRESSION) \
     56 do \
     57   { \
     58     if (WITH_ASSERT) \
     59       { \
     60         if (!(EXPRESSION)) \
     61           { \
     62             /* report the failure */ \
     63             sim_io_error (NULL, "%s:%d: assertion failed - %s", \
     64                           lbasename (__FILE__), __LINE__, #EXPRESSION); \
     65           } \
     66       } \
     67   } \
     68 while (0)
     69 #else
     70 #define ASSERT(EXPRESSION) do { /*nothing*/; } while (0)
     71 #endif
     72 #endif
     73 
     74 #endif
     75