1 /* This file is part of the program GDB. 2 3 Copyright (C) 1997-2020 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 /* The subtle difference between SIM_ASSERT and ASSERT is that 25 SIM_ASSERT passes `sd' to sim_io_error for the SIM_DESC, 26 ASSERT passes NULL. */ 27 28 #if !defined (SIM_ASSERT) 29 #if defined (WITH_ASSERT) 30 #include "sim-io.h" 31 #include "libiberty.h" 32 #define SIM_ASSERT(EXPRESSION) \ 33 do \ 34 { \ 35 if (WITH_ASSERT) \ 36 { \ 37 if (!(EXPRESSION)) \ 38 { \ 39 /* report the failure */ \ 40 sim_io_error (sd, "%s:%d: assertion failed - %s", \ 41 lbasename (__FILE__), __LINE__, #EXPRESSION); \ 42 } \ 43 } \ 44 } \ 45 while (0) 46 #else 47 #define SIM_ASSERT(EXPRESSION) do { /*nothing*/; } while (0) 48 #endif 49 #endif 50 51 #if !defined (ASSERT) 52 #if defined (WITH_ASSERT) 53 #include "sim-io.h" 54 #include "libiberty.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