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