diff options
Diffstat (limited to 'gcc/m2/mc-boot/GmcDebug.c')
-rw-r--r-- | gcc/m2/mc-boot/GmcDebug.c | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/gcc/m2/mc-boot/GmcDebug.c b/gcc/m2/mc-boot/GmcDebug.c new file mode 100644 index 0000000..3c47196 --- /dev/null +++ b/gcc/m2/mc-boot/GmcDebug.c @@ -0,0 +1,86 @@ +/* do not edit automatically generated by mc from mcDebug. */ +/* This file is part of GNU Modula-2. + +GNU Modula-2 is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GNU Modula-2 is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License along +with gm2; see the file COPYING. If not, write to the Free Software +Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#include "config.h" +#include "system.h" +# if !defined (PROC_D) +# define PROC_D + typedef void (*PROC_t) (void); + typedef struct { PROC_t proc; } PROC; +# endif + +#define _mcDebug_H +#define _mcDebug_C + +# include "GStrIO.h" +# include "GmcOptions.h" +# include "GmcError.h" + + +/* + assert - tests the boolean, q. If false then an error is reported + and the execution is terminated. +*/ + +extern "C" void mcDebug_assert (unsigned int q); + +/* + writeDebug - only writes a string if internal debugging is on. +*/ + +extern "C" void mcDebug_writeDebug (const char *a_, unsigned int _a_high); + + +/* + assert - tests the boolean, q. If false then an error is reported + and the execution is terminated. +*/ + +extern "C" void mcDebug_assert (unsigned int q) +{ + if (! q) + { + mcError_internalError ((const char *) "assert failed", 13, (const char *) "../../gcc-git-devel-modula2/gcc/m2/mc/mcDebug.mod", 49, 35); + } +} + + +/* + writeDebug - only writes a string if internal debugging is on. +*/ + +extern "C" void mcDebug_writeDebug (const char *a_, unsigned int _a_high) +{ + char a[_a_high+1]; + + /* make a local copy of each unbounded array. */ + memcpy (a, a_, _a_high+1); + + if (mcOptions_getInternalDebugging ()) + { + StrIO_WriteString ((const char *) a, _a_high); + StrIO_WriteLn (); + } +} + +extern "C" void _M2_mcDebug_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[]) +{ +} + +extern "C" void _M2_mcDebug_finish (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[]) +{ +} |