aboutsummaryrefslogtreecommitdiff
path: root/gcc/m2/mc-boot/GDynamicStrings.c
diff options
context:
space:
mode:
authorGaius Mulley <gaiusmod2@gmail.com>2022-12-14 17:43:08 +0000
committerGaius Mulley <gaiusmod2@gmail.com>2022-12-14 17:43:08 +0000
commit1eee94d351774cdc2efc8ee508b82d065184c6ee (patch)
tree237a87ca1205432f65e556fd900b39d3d5530ff2 /gcc/m2/mc-boot/GDynamicStrings.c
parent330b9a8d87dd73e10539da618496ad4964fee26d (diff)
downloadgcc-1eee94d351774cdc2efc8ee508b82d065184c6ee.zip
gcc-1eee94d351774cdc2efc8ee508b82d065184c6ee.tar.gz
gcc-1eee94d351774cdc2efc8ee508b82d065184c6ee.tar.bz2
Merge modula-2 front end onto gcc.
This commit merges the devel/modula2 into master. The libraries reside in libgm2, the compiler in gcc/m2 and the testsuite in gcc/testsuite/gm2. ChangeLog: * configure.ac (target_libraries): Add target-libgm2. Add NCN_STRICT_CHECK_TARGET_TOOLS entry for gm2. Add GCC_TARGET_TOOL entry for gm2. (compare_exclusions) add gcc/m2/gm2-compiler/M2Version, gcc/m2/gm2-compiler-boot/SYSTEM and gcc/m2/gm2version. * Makefile.def (target_modules): Add libgm2. (flags_to_pass) Add GM2_FOR_TARGET, GM2FLAGS_FOR_TARGET. (dependencies) Add all-target-libgm2 and on=all-target-libatomic. (languages) Add entry for language=m2 with gcc-check-target=check-m2 and lib-check-target=check-target-libgm2. * Makefile.tpl (BUILD_EXPORTS): Add definition for GM2 and GM2FLAGS. (HOST_EXPORTS) Add definition for GM2. (BASE_TARGET_EXPORTS) Add definition for GM2. (GM2_FOR_BUILD) Defined. (GM2FLAGS) Defined. (GM2_FOR_TARGET) Defined. (GM2FLAGS_FOR_TARGET) Defined. (EXTRA_HOST_FLAGS) Defined. (POSTSTAGE1_FLAGS_TO_PASS) Add GM2 and GM2_FOR_BUILD. (EXTRA_TARGET_FLAGS) Add GM2 and GM2FLAGS. (EXTRA_GCC_FLAGS) Add GM2_FOR_TARGET. * configure: (Rebuilt). * Makefile.in: (Rebuilt). libgm2/ChangeLog: * Makefile.am: (New file). * autogen.sh: (New file). * config.h.in: (New file). * configure.ac: (New file). * libm2cor/KeyBoardLEDs.cc: (New file). * libm2cor/Makefile.am: (New file). * libm2iso/ChanConsts.h: (New file). * libm2iso/ErrnoCategory.cc: (New file). * libm2iso/Makefile.am: (New file). * libm2iso/RTco.cc: (New file). * libm2iso/m2rts.h: (New file). * libm2iso/wrapsock.c: (New file). * libm2iso/wraptime.c: (New file). * libm2log/Break.c: (New file). * libm2log/Makefile.am: (New file). * libm2min/Makefile.am: (New file). * libm2min/libc.c: (New file). * libm2pim/Makefile.am: (New file). * libm2pim/Selective.cc: (New file). * libm2pim/SysExceptions.cc: (New file). * libm2pim/UnixArgs.cc: (New file). * libm2pim/cgetopt.cc: (New file). * libm2pim/dtoa.cc: (New file). * libm2pim/errno.cc: (New file). * libm2pim/ldtoa.cc: (New file). * libm2pim/sckt.cc: (New file). * libm2pim/target.c: (New file). * libm2pim/termios.cc: (New file). * libm2pim/wrapc.c: (New file). * configure: (Rebuilt). * libm2log/Makefile.in: (Rebuilt). * libm2min/Makefile.in: (Rebuilt). * libm2cor/Makefile.in: (Rebuilt). * libm2pim/Makefile.in: (Rebuilt). * libm2iso/Makefile.in: (Rebuilt). gcc/ChangeLog: * configure.ac (HAVE_PYTHON): Test for Python3 added. * dwarf2out.cc (gen_compile_unit_die): Check language_string and language to DW_LANG_Modula2. * doc/install.texi: Add m2 as a language. (--disable-libgm2) Documented. Add make check-m2 to testing selected tests. * doc/sourcebuild.texi (GM2): New prerequisite item. (Python3 modules) New item. (libgm2) Added. (gcc/m2) Added. * configure: (Rebuilt). * config.in: (Rebuilt). gcc/m2/ChangeLog: * COPYING.FDL: (New file). * COPYING.RUNTIME: (New file). * COPYING3: (New file). * COPYING3.LIB: (New file). * Make-lang.in: (New file). * Make-maintainer.in: (New file). * NEWS: (New file). * README: (New file). * config-lang.in: (New file). * config-make.in: (New file). * configure.ac: (New file). * gm2-compiler/CLexBuf.def: (New file). * gm2-compiler/CLexBuf.mod: (New file). * gm2-compiler/FifoQueue.def: (New file). * gm2-compiler/FifoQueue.mod: (New file). * gm2-compiler/Lists.def: (New file). * gm2-compiler/Lists.mod: (New file). * gm2-compiler/M2ALU.def: (New file). * gm2-compiler/M2ALU.mod: (New file). * gm2-compiler/M2AsmUtil.def: (New file). * gm2-compiler/M2AsmUtil.mod: (New file). * gm2-compiler/M2Base.def: (New file). * gm2-compiler/M2Base.mod: (New file). * gm2-compiler/M2BasicBlock.def: (New file). * gm2-compiler/M2BasicBlock.mod: (New file). * gm2-compiler/M2Batch.def: (New file). * gm2-compiler/M2Batch.mod: (New file). * gm2-compiler/M2Bitset.def: (New file). * gm2-compiler/M2Bitset.mod: (New file). * gm2-compiler/M2CaseList.def: (New file). * gm2-compiler/M2CaseList.mod: (New file). * gm2-compiler/M2Check.def: (New file). * gm2-compiler/M2Check.mod: (New file). * gm2-compiler/M2Code.def: (New file). * gm2-compiler/M2Code.mod: (New file). * gm2-compiler/M2ColorString.def: (New file). * gm2-compiler/M2ColorString.mod: (New file). * gm2-compiler/M2Comp.def: (New file). * gm2-compiler/M2Comp.mod: (New file). * gm2-compiler/M2Const.def: (New file). * gm2-compiler/M2Const.mod: (New file). * gm2-compiler/M2Debug.def: (New file). * gm2-compiler/M2Debug.mod: (New file). * gm2-compiler/M2DebugStack.def: (New file). * gm2-compiler/M2DebugStack.mod: (New file). * gm2-compiler/M2Defaults.def: (New file). * gm2-compiler/M2Defaults.mod: (New file). * gm2-compiler/M2DriverOptions.def: (New file). * gm2-compiler/M2DriverOptions.mod: (New file). * gm2-compiler/M2Emit.def: (New file). * gm2-compiler/M2Emit.mod: (New file). * gm2-compiler/M2Error.def: (New file). * gm2-compiler/M2Error.mod: (New file). * gm2-compiler/M2EvalSym.def: (New file). * gm2-compiler/M2FileName.def: (New file). * gm2-compiler/M2FileName.mod: (New file). * gm2-compiler/M2GCCDeclare.def: (New file). * gm2-compiler/M2GCCDeclare.mod: (New file). * gm2-compiler/M2GenGCC.def: (New file). * gm2-compiler/M2GenGCC.mod: (New file). * gm2-compiler/M2Graph.def: (New file). * gm2-compiler/M2Graph.mod: (New file). * gm2-compiler/M2Lex.def: (New file). * gm2-compiler/M2Lex.mod: (New file). * gm2-compiler/M2LexBuf.def: (New file). * gm2-compiler/M2LexBuf.mod: (New file). * gm2-compiler/M2MetaError.def: (New file). * gm2-compiler/M2MetaError.mod: (New file). * gm2-compiler/M2Optimize.def: (New file). * gm2-compiler/M2Optimize.mod: (New file). * gm2-compiler/M2Options.def: (New file). * gm2-compiler/M2Options.mod: (New file). * gm2-compiler/M2Pass.def: (New file). * gm2-compiler/M2Pass.mod: (New file). * gm2-compiler/M2Preprocess.def: (New file). * gm2-compiler/M2Preprocess.mod: (New file). * gm2-compiler/M2Printf.def: (New file). * gm2-compiler/M2Printf.mod: (New file). * gm2-compiler/M2Quads.def: (New file). * gm2-compiler/M2Quads.mod: (New file). * gm2-compiler/M2Quiet.def: (New file). * gm2-compiler/M2Quiet.mod: (New file). * gm2-compiler/M2Range.def: (New file). * gm2-compiler/M2Range.mod: (New file). * gm2-compiler/M2Reserved.def: (New file). * gm2-compiler/M2Reserved.mod: (New file). * gm2-compiler/M2SSA.def: (New file). * gm2-compiler/M2SSA.mod: (New file). * gm2-compiler/M2Scaffold.def: (New file). * gm2-compiler/M2Scaffold.mod: (New file). * gm2-compiler/M2Scope.def: (New file). * gm2-compiler/M2Scope.mod: (New file). * gm2-compiler/M2Search.def: (New file). * gm2-compiler/M2Search.mod: (New file). * gm2-compiler/M2Size.def: (New file). * gm2-compiler/M2Size.mod: (New file). * gm2-compiler/M2StackAddress.def: (New file). * gm2-compiler/M2StackAddress.mod: (New file). * gm2-compiler/M2StackWord.def: (New file). * gm2-compiler/M2StackWord.mod: (New file). * gm2-compiler/M2Students.def: (New file). * gm2-compiler/M2Students.mod: (New file). * gm2-compiler/M2Swig.def: (New file). * gm2-compiler/M2Swig.mod: (New file). * gm2-compiler/M2System.def: (New file). * gm2-compiler/M2System.mod: (New file). * gm2-compiler/M2Version.def: (New file). * gm2-compiler/NameKey.def: (New file). * gm2-compiler/NameKey.mod: (New file). * gm2-compiler/ObjectFiles.def: (New file). * gm2-compiler/ObjectFiles.mod: (New file). * gm2-compiler/Output.def: (New file). * gm2-compiler/Output.mod: (New file). * gm2-compiler/P0SymBuild.def: (New file). * gm2-compiler/P0SymBuild.mod: (New file). * gm2-compiler/P0SyntaxCheck.bnf: (New file). * gm2-compiler/P0SyntaxCheck.def: (New file). * gm2-compiler/P1Build.bnf: (New file). * gm2-compiler/P1Build.def: (New file). * gm2-compiler/P1SymBuild.def: (New file). * gm2-compiler/P1SymBuild.mod: (New file). * gm2-compiler/P2Build.bnf: (New file). * gm2-compiler/P2Build.def: (New file). * gm2-compiler/P2SymBuild.def: (New file). * gm2-compiler/P2SymBuild.mod: (New file). * gm2-compiler/P3Build.bnf: (New file). * gm2-compiler/P3Build.def: (New file). * gm2-compiler/P3SymBuild.def: (New file). * gm2-compiler/P3SymBuild.mod: (New file). * gm2-compiler/PCBuild.bnf: (New file). * gm2-compiler/PCBuild.def: (New file). * gm2-compiler/PCSymBuild.def: (New file). * gm2-compiler/PCSymBuild.mod: (New file). * gm2-compiler/PHBuild.bnf: (New file). * gm2-compiler/PHBuild.def: (New file). * gm2-compiler/README: (New file). * gm2-compiler/Sets.def: (New file). * gm2-compiler/Sets.mod: (New file). * gm2-compiler/SymbolConversion.def: (New file). * gm2-compiler/SymbolConversion.mod: (New file). * gm2-compiler/SymbolKey.def: (New file). * gm2-compiler/SymbolKey.mod: (New file). * gm2-compiler/SymbolTable.def: (New file). * gm2-compiler/SymbolTable.mod: (New file). * gm2-compiler/bnflex.def: (New file). * gm2-compiler/bnflex.mod: (New file). * gm2-compiler/cflex.def: (New file). * gm2-compiler/gm2.mod: (New file). * gm2-compiler/gm2lcc.mod: (New file). * gm2-compiler/gm2lgen.mod: (New file). * gm2-compiler/gm2lorder.mod: (New file). * gm2-compiler/m2flex.def: (New file). * gm2-compiler/ppg.mod: (New file). * gm2-gcc/README: (New file). * gm2-gcc/dynamicstrings.h: (New file). * gm2-gcc/gcc-consolidation.h: (New file). * gm2-gcc/init.cc: (New file). * gm2-gcc/init.def: (New file). * gm2-gcc/init.h: (New file). * gm2-gcc/m2assert.cc: (New file). * gm2-gcc/m2assert.h: (New file). * gm2-gcc/m2block.cc: (New file). * gm2-gcc/m2block.def: (New file). * gm2-gcc/m2block.h: (New file). * gm2-gcc/m2builtins.cc: (New file). * gm2-gcc/m2builtins.def: (New file). * gm2-gcc/m2builtins.h: (New file). * gm2-gcc/m2color.cc: (New file). * gm2-gcc/m2color.def: (New file). * gm2-gcc/m2color.h: (New file). * gm2-gcc/m2configure.cc: (New file). * gm2-gcc/m2configure.def: (New file). * gm2-gcc/m2configure.h: (New file). * gm2-gcc/m2convert.cc: (New file). * gm2-gcc/m2convert.def: (New file). * gm2-gcc/m2convert.h: (New file). * gm2-gcc/m2decl.cc: (New file). * gm2-gcc/m2decl.def: (New file). * gm2-gcc/m2decl.h: (New file). * gm2-gcc/m2except.cc: (New file). * gm2-gcc/m2except.def: (New file). * gm2-gcc/m2except.h: (New file). * gm2-gcc/m2expr.cc: (New file). * gm2-gcc/m2expr.def: (New file). * gm2-gcc/m2expr.h: (New file). * gm2-gcc/m2linemap.cc: (New file). * gm2-gcc/m2linemap.def: (New file). * gm2-gcc/m2linemap.h: (New file). * gm2-gcc/m2misc.cc: (New file). * gm2-gcc/m2misc.def: (New file). * gm2-gcc/m2misc.h: (New file). * gm2-gcc/m2options.h: (New file). * gm2-gcc/m2range.h: (New file). * gm2-gcc/m2search.h: (New file). * gm2-gcc/m2statement.cc: (New file). * gm2-gcc/m2statement.def: (New file). * gm2-gcc/m2statement.h: (New file). * gm2-gcc/m2top.cc: (New file). * gm2-gcc/m2top.def: (New file). * gm2-gcc/m2top.h: (New file). * gm2-gcc/m2tree.cc: (New file). * gm2-gcc/m2tree.def: (New file). * gm2-gcc/m2tree.h: (New file). * gm2-gcc/m2treelib.cc: (New file). * gm2-gcc/m2treelib.def: (New file). * gm2-gcc/m2treelib.h: (New file). * gm2-gcc/m2type.cc: (New file). * gm2-gcc/m2type.def: (New file). * gm2-gcc/m2type.h: (New file). * gm2-gcc/rtegraph.cc: (New file). * gm2-gcc/rtegraph.h: (New file). * gm2-ici/M2Emit.mod: (New file). * gm2-ici/README: (New file). * gm2-ici/m2linemap.c: (New file). * gm2-internals.texi: (New file). * gm2-lang.cc: (New file). * gm2-lang.h: (New file). * gm2-libiberty/README: (New file). * gm2-libiberty/choosetemp.def: (New file). * gm2-libiberty/pexecute.def: (New file). * gm2-libs-ch/M2LINK.c: (New file). * gm2-libs-ch/README: (New file). * gm2-libs-ch/RTcodummy.c: (New file). * gm2-libs-ch/RTintdummy.c: (New file). * gm2-libs-ch/Selective.c: (New file). * gm2-libs-ch/SysExceptions.c: (New file). * gm2-libs-ch/UnixArgs.cc: (New file). * gm2-libs-ch/cgetopt.c: (New file). * gm2-libs-ch/choosetemp.c: (New file). * gm2-libs-ch/dtoa.cc: (New file). * gm2-libs-ch/errno.c: (New file). * gm2-libs-ch/host.c: (New file). * gm2-libs-ch/ldtoa.cc: (New file). * gm2-libs-ch/m2rts.h: (New file). * gm2-libs-ch/termios.c: (New file). * gm2-libs-ch/tools.c: (New file). * gm2-libs-ch/wrapc.c: (New file). * gm2-libs-ch/xlibc.c: (New file). * gm2-libs-coroutines/Debug.def: (New file). * gm2-libs-coroutines/Debug.mod: (New file). * gm2-libs-coroutines/Executive.def: (New file). * gm2-libs-coroutines/Executive.mod: (New file). * gm2-libs-coroutines/KeyBoardLEDs.def: (New file). * gm2-libs-coroutines/README.texi: (New file). * gm2-libs-coroutines/SYSTEM.def: (New file). * gm2-libs-coroutines/SYSTEM.mod: (New file). * gm2-libs-coroutines/TimerHandler.def: (New file). * gm2-libs-coroutines/TimerHandler.mod: (New file). * gm2-libs-iso/COROUTINES.def: (New file). * gm2-libs-iso/COROUTINES.mod: (New file). * gm2-libs-iso/ChanConsts.def: (New file). * gm2-libs-iso/ChanConsts.h: (New file). * gm2-libs-iso/ChanConsts.mod: (New file). * gm2-libs-iso/CharClass.def: (New file). * gm2-libs-iso/CharClass.mod: (New file). * gm2-libs-iso/ClientSocket.def: (New file). * gm2-libs-iso/ClientSocket.mod: (New file). * gm2-libs-iso/ComplexMath.def: (New file). * gm2-libs-iso/ComplexMath.mod: (New file). * gm2-libs-iso/ConvStringLong.def: (New file). * gm2-libs-iso/ConvStringLong.mod: (New file). * gm2-libs-iso/ConvStringReal.def: (New file). * gm2-libs-iso/ConvStringReal.mod: (New file). * gm2-libs-iso/ConvTypes.def: (New file). * gm2-libs-iso/ConvTypes.mod: (New file). * gm2-libs-iso/EXCEPTIONS.def: (New file). * gm2-libs-iso/EXCEPTIONS.mod: (New file). * gm2-libs-iso/ErrnoCategory.def: (New file). * gm2-libs-iso/GeneralUserExceptions.def: (New file). * gm2-libs-iso/GeneralUserExceptions.mod: (New file). * gm2-libs-iso/IOChan.def: (New file). * gm2-libs-iso/IOChan.mod: (New file). * gm2-libs-iso/IOConsts.def: (New file). * gm2-libs-iso/IOConsts.mod: (New file). * gm2-libs-iso/IOLink.def: (New file). * gm2-libs-iso/IOLink.mod: (New file). * gm2-libs-iso/IOResult.def: (New file). * gm2-libs-iso/IOResult.mod: (New file). * gm2-libs-iso/LongComplexMath.def: (New file). * gm2-libs-iso/LongComplexMath.mod: (New file). * gm2-libs-iso/LongConv.def: (New file). * gm2-libs-iso/LongConv.mod: (New file). * gm2-libs-iso/LongIO.def: (New file). * gm2-libs-iso/LongIO.mod: (New file). * gm2-libs-iso/LongMath.def: (New file). * gm2-libs-iso/LongMath.mod: (New file). * gm2-libs-iso/LongStr.def: (New file). * gm2-libs-iso/LongStr.mod: (New file). * gm2-libs-iso/LongWholeIO.def: (New file). * gm2-libs-iso/LongWholeIO.mod: (New file). * gm2-libs-iso/LowLong.def: (New file). * gm2-libs-iso/LowLong.mod: (New file). * gm2-libs-iso/LowReal.def: (New file). * gm2-libs-iso/LowReal.mod: (New file). * gm2-libs-iso/LowShort.def: (New file). * gm2-libs-iso/LowShort.mod: (New file). * gm2-libs-iso/M2EXCEPTION.def: (New file). * gm2-libs-iso/M2EXCEPTION.mod: (New file). * gm2-libs-iso/M2RTS.def: (New file). * gm2-libs-iso/M2RTS.mod: (New file). * gm2-libs-iso/MemStream.def: (New file). * gm2-libs-iso/MemStream.mod: (New file). * gm2-libs-iso/Preemptive.def: (New file). * gm2-libs-iso/Preemptive.mod: (New file). * gm2-libs-iso/Processes.def: (New file). * gm2-libs-iso/Processes.mod: (New file). * gm2-libs-iso/ProgramArgs.def: (New file). * gm2-libs-iso/ProgramArgs.mod: (New file). * gm2-libs-iso/README.texi: (New file). * gm2-libs-iso/RTco.def: (New file). * gm2-libs-iso/RTdata.def: (New file). * gm2-libs-iso/RTdata.mod: (New file). * gm2-libs-iso/RTentity.def: (New file). * gm2-libs-iso/RTentity.mod: (New file). * gm2-libs-iso/RTfio.def: (New file). * gm2-libs-iso/RTfio.mod: (New file). * gm2-libs-iso/RTgen.def: (New file). * gm2-libs-iso/RTgen.mod: (New file). * gm2-libs-iso/RTgenif.def: (New file). * gm2-libs-iso/RTgenif.mod: (New file). * gm2-libs-iso/RTio.def: (New file). * gm2-libs-iso/RTio.mod: (New file). * gm2-libs-iso/RandomNumber.def: (New file). * gm2-libs-iso/RandomNumber.mod: (New file). * gm2-libs-iso/RawIO.def: (New file). * gm2-libs-iso/RawIO.mod: (New file). * gm2-libs-iso/RealConv.def: (New file). * gm2-libs-iso/RealConv.mod: (New file). * gm2-libs-iso/RealIO.def: (New file). * gm2-libs-iso/RealIO.mod: (New file). * gm2-libs-iso/RealMath.def: (New file). * gm2-libs-iso/RealMath.mod: (New file). * gm2-libs-iso/RealStr.def: (New file). * gm2-libs-iso/RealStr.mod: (New file). * gm2-libs-iso/RndFile.def: (New file). * gm2-libs-iso/RndFile.mod: (New file). * gm2-libs-iso/SIOResult.def: (New file). * gm2-libs-iso/SIOResult.mod: (New file). * gm2-libs-iso/SLongIO.def: (New file). * gm2-libs-iso/SLongIO.mod: (New file). * gm2-libs-iso/SLongWholeIO.def: (New file). * gm2-libs-iso/SLongWholeIO.mod: (New file). * gm2-libs-iso/SRawIO.def: (New file). * gm2-libs-iso/SRawIO.mod: (New file). * gm2-libs-iso/SRealIO.def: (New file). * gm2-libs-iso/SRealIO.mod: (New file). * gm2-libs-iso/SShortIO.def: (New file). * gm2-libs-iso/SShortIO.mod: (New file). * gm2-libs-iso/SShortWholeIO.def: (New file). * gm2-libs-iso/SShortWholeIO.mod: (New file). * gm2-libs-iso/STextIO.def: (New file). * gm2-libs-iso/STextIO.mod: (New file). * gm2-libs-iso/SWholeIO.def: (New file). * gm2-libs-iso/SWholeIO.mod: (New file). * gm2-libs-iso/SYSTEM.def: (New file). * gm2-libs-iso/SYSTEM.mod: (New file). * gm2-libs-iso/Semaphores.def: (New file). * gm2-libs-iso/Semaphores.mod: (New file). * gm2-libs-iso/SeqFile.def: (New file). * gm2-libs-iso/SeqFile.mod: (New file). * gm2-libs-iso/ShortComplexMath.def: (New file). * gm2-libs-iso/ShortComplexMath.mod: (New file). * gm2-libs-iso/ShortIO.def: (New file). * gm2-libs-iso/ShortIO.mod: (New file). * gm2-libs-iso/ShortWholeIO.def: (New file). * gm2-libs-iso/ShortWholeIO.mod: (New file). * gm2-libs-iso/SimpleCipher.def: (New file). * gm2-libs-iso/SimpleCipher.mod: (New file). * gm2-libs-iso/StdChans.def: (New file). * gm2-libs-iso/StdChans.mod: (New file). * gm2-libs-iso/Storage.def: (New file). * gm2-libs-iso/Storage.mod: (New file). * gm2-libs-iso/StreamFile.def: (New file). * gm2-libs-iso/StreamFile.mod: (New file). * gm2-libs-iso/StringChan.def: (New file). * gm2-libs-iso/StringChan.mod: (New file). * gm2-libs-iso/Strings.def: (New file). * gm2-libs-iso/Strings.mod: (New file). * gm2-libs-iso/SysClock.def: (New file). * gm2-libs-iso/SysClock.mod: (New file). * gm2-libs-iso/TERMINATION.def: (New file). * gm2-libs-iso/TERMINATION.mod: (New file). * gm2-libs-iso/TermFile.def: (New file). * gm2-libs-iso/TermFile.mod: (New file). * gm2-libs-iso/TextIO.def: (New file). * gm2-libs-iso/TextIO.mod: (New file). * gm2-libs-iso/WholeConv.def: (New file). * gm2-libs-iso/WholeConv.mod: (New file). * gm2-libs-iso/WholeIO.def: (New file). * gm2-libs-iso/WholeIO.mod: (New file). * gm2-libs-iso/WholeStr.def: (New file). * gm2-libs-iso/WholeStr.mod: (New file). * gm2-libs-iso/wrapsock.c: (New file). * gm2-libs-iso/wrapsock.def: (New file). * gm2-libs-iso/wraptime.c: (New file). * gm2-libs-iso/wraptime.def: (New file). * gm2-libs-min/M2RTS.def: (New file). * gm2-libs-min/M2RTS.mod: (New file). * gm2-libs-min/SYSTEM.def: (New file). * gm2-libs-min/SYSTEM.mod: (New file). * gm2-libs-min/libc.c: (New file). * gm2-libs-min/libc.def: (New file). * gm2-libs-pim/BitBlockOps.def: (New file). * gm2-libs-pim/BitBlockOps.mod: (New file). * gm2-libs-pim/BitByteOps.def: (New file). * gm2-libs-pim/BitByteOps.mod: (New file). * gm2-libs-pim/BitWordOps.def: (New file). * gm2-libs-pim/BitWordOps.mod: (New file). * gm2-libs-pim/BlockOps.def: (New file). * gm2-libs-pim/BlockOps.mod: (New file). * gm2-libs-pim/Break.c: (New file). * gm2-libs-pim/Break.def: (New file). * gm2-libs-pim/CardinalIO.def: (New file). * gm2-libs-pim/CardinalIO.mod: (New file). * gm2-libs-pim/Conversions.def: (New file). * gm2-libs-pim/Conversions.mod: (New file). * gm2-libs-pim/DebugPMD.def: (New file). * gm2-libs-pim/DebugPMD.mod: (New file). * gm2-libs-pim/DebugTrace.def: (New file). * gm2-libs-pim/DebugTrace.mod: (New file). * gm2-libs-pim/Delay.def: (New file). * gm2-libs-pim/Delay.mod: (New file). * gm2-libs-pim/Display.def: (New file). * gm2-libs-pim/Display.mod: (New file). * gm2-libs-pim/ErrorCode.def: (New file). * gm2-libs-pim/ErrorCode.mod: (New file). * gm2-libs-pim/FileSystem.def: (New file). * gm2-libs-pim/FileSystem.mod: (New file). * gm2-libs-pim/FloatingUtilities.def: (New file). * gm2-libs-pim/FloatingUtilities.mod: (New file). * gm2-libs-pim/InOut.def: (New file). * gm2-libs-pim/InOut.mod: (New file). * gm2-libs-pim/Keyboard.def: (New file). * gm2-libs-pim/Keyboard.mod: (New file). * gm2-libs-pim/LongIO.def: (New file). * gm2-libs-pim/LongIO.mod: (New file). * gm2-libs-pim/NumberConversion.def: (New file). * gm2-libs-pim/NumberConversion.mod: (New file). * gm2-libs-pim/README.texi: (New file). * gm2-libs-pim/Random.def: (New file). * gm2-libs-pim/Random.mod: (New file). * gm2-libs-pim/RealConversions.def: (New file). * gm2-libs-pim/RealConversions.mod: (New file). * gm2-libs-pim/RealInOut.def: (New file). * gm2-libs-pim/RealInOut.mod: (New file). * gm2-libs-pim/Strings.def: (New file). * gm2-libs-pim/Strings.mod: (New file). * gm2-libs-pim/Termbase.def: (New file). * gm2-libs-pim/Termbase.mod: (New file). * gm2-libs-pim/Terminal.def: (New file). * gm2-libs-pim/Terminal.mod: (New file). * gm2-libs-pim/TimeDate.def: (New file). * gm2-libs-pim/TimeDate.mod: (New file). * gm2-libs/ASCII.def: (New file). * gm2-libs/ASCII.mod: (New file). * gm2-libs/Args.def: (New file). * gm2-libs/Args.mod: (New file). * gm2-libs/Assertion.def: (New file). * gm2-libs/Assertion.mod: (New file). * gm2-libs/Break.def: (New file). * gm2-libs/Break.mod: (New file). * gm2-libs/Builtins.def: (New file). * gm2-libs/Builtins.mod: (New file). * gm2-libs/COROUTINES.def: (New file). * gm2-libs/COROUTINES.mod: (New file). * gm2-libs/CmdArgs.def: (New file). * gm2-libs/CmdArgs.mod: (New file). * gm2-libs/Debug.def: (New file). * gm2-libs/Debug.mod: (New file). * gm2-libs/DynamicStrings.def: (New file). * gm2-libs/DynamicStrings.mod: (New file). * gm2-libs/Environment.def: (New file). * gm2-libs/Environment.mod: (New file). * gm2-libs/FIO.def: (New file). * gm2-libs/FIO.mod: (New file). * gm2-libs/FormatStrings.def: (New file). * gm2-libs/FormatStrings.mod: (New file). * gm2-libs/FpuIO.def: (New file). * gm2-libs/FpuIO.mod: (New file). * gm2-libs/GetOpt.def: (New file). * gm2-libs/GetOpt.mod: (New file). * gm2-libs/IO.def: (New file). * gm2-libs/IO.mod: (New file). * gm2-libs/Indexing.def: (New file). * gm2-libs/Indexing.mod: (New file). * gm2-libs/LMathLib0.def: (New file). * gm2-libs/LMathLib0.mod: (New file). * gm2-libs/LegacyReal.def: (New file). * gm2-libs/LegacyReal.mod: (New file). * gm2-libs/M2Dependent.def: (New file). * gm2-libs/M2Dependent.mod: (New file). * gm2-libs/M2EXCEPTION.def: (New file). * gm2-libs/M2EXCEPTION.mod: (New file). * gm2-libs/M2LINK.def: (New file). * gm2-libs/M2RTS.def: (New file). * gm2-libs/M2RTS.mod: (New file). * gm2-libs/MathLib0.def: (New file). * gm2-libs/MathLib0.mod: (New file). * gm2-libs/MemUtils.def: (New file). * gm2-libs/MemUtils.mod: (New file). * gm2-libs/NumberIO.def: (New file). * gm2-libs/NumberIO.mod: (New file). * gm2-libs/OptLib.def: (New file). * gm2-libs/OptLib.mod: (New file). * gm2-libs/PushBackInput.def: (New file). * gm2-libs/PushBackInput.mod: (New file). * gm2-libs/README.texi: (New file). * gm2-libs/RTExceptions.def: (New file). * gm2-libs/RTExceptions.mod: (New file). * gm2-libs/RTint.def: (New file). * gm2-libs/RTint.mod: (New file). * gm2-libs/SArgs.def: (New file). * gm2-libs/SArgs.mod: (New file). * gm2-libs/SCmdArgs.def: (New file). * gm2-libs/SCmdArgs.mod: (New file). * gm2-libs/SEnvironment.def: (New file). * gm2-libs/SEnvironment.mod: (New file). * gm2-libs/SFIO.def: (New file). * gm2-libs/SFIO.mod: (New file). * gm2-libs/SMathLib0.def: (New file). * gm2-libs/SMathLib0.mod: (New file). * gm2-libs/SYSTEM.def: (New file). * gm2-libs/SYSTEM.mod: (New file). * gm2-libs/Scan.def: (New file). * gm2-libs/Scan.mod: (New file). * gm2-libs/Selective.def: (New file). * gm2-libs/StdIO.def: (New file). * gm2-libs/StdIO.mod: (New file). * gm2-libs/Storage.def: (New file). * gm2-libs/Storage.mod: (New file). * gm2-libs/StrCase.def: (New file). * gm2-libs/StrCase.mod: (New file). * gm2-libs/StrIO.def: (New file). * gm2-libs/StrIO.mod: (New file). * gm2-libs/StrLib.def: (New file). * gm2-libs/StrLib.mod: (New file). * gm2-libs/StringConvert.def: (New file). * gm2-libs/StringConvert.mod: (New file). * gm2-libs/SysExceptions.def: (New file). * gm2-libs/SysStorage.def: (New file). * gm2-libs/SysStorage.mod: (New file). * gm2-libs/TimeString.def: (New file). * gm2-libs/TimeString.mod: (New file). * gm2-libs/UnixArgs.def: (New file). * gm2-libs/cbuiltin.def: (New file). * gm2-libs/cgetopt.def: (New file). * gm2-libs/config-host: (New file). * gm2-libs/config-host.in: (New file). * gm2-libs/cxxabi.def: (New file). * gm2-libs/dtoa.def: (New file). * gm2-libs/errno.def: (New file). * gm2-libs/gdbif.def: (New file). * gm2-libs/gdbif.mod: (New file). * gm2-libs/gm2-libs-host.h.in: (New file). * gm2-libs/ldtoa.def: (New file). * gm2-libs/libc.def: (New file). * gm2-libs/libm.def: (New file). * gm2-libs/sckt.def: (New file). * gm2-libs/termios.def: (New file). * gm2-libs/wrapc.def: (New file). * gm2config.h.in: (New file). * gm2spec.cc: (New file). * gm2version.h: (New file). * init/README: (New file). * init/mcinit: (New file). * init/ppginit: (New file). * lang-specs.h: (New file). * lang.opt: (New file). * m2-tree.def: (New file). * m2-tree.h: (New file). * m2.flex: (New file). * m2pp.cc: (New file). * m2pp.h: (New file). * mc-boot-ch/GBuiltins.c: (New file). * mc-boot-ch/GM2LINK.c: (New file). * mc-boot-ch/GRTco.c: (New file). * mc-boot-ch/GSYSTEM.c: (New file). * mc-boot-ch/GSelective.c: (New file). * mc-boot-ch/GSysExceptions.c: (New file). * mc-boot-ch/GUnixArgs.cc: (New file). * mc-boot-ch/Gabort.c: (New file). * mc-boot-ch/Gcbuiltin.c: (New file). * mc-boot-ch/Gdtoa.c: (New file). * mc-boot-ch/Gerrno.c: (New file). * mc-boot-ch/Gldtoa.c: (New file). * mc-boot-ch/Glibc.c: (New file). * mc-boot-ch/Glibm.c: (New file). * mc-boot-ch/Gmcrts.c: (New file). * mc-boot-ch/Gmcrts.h: (New file). * mc-boot-ch/Gnetwork.h: (New file). * mc-boot-ch/Gtermios.cc: (New file). * mc-boot-ch/Gwrapc.c: (New file). * mc-boot-ch/README: (New file). * mc-boot-ch/m2rts.h: (New file). * mc-boot-ch/network.c: (New file). * mc-boot/GASCII.c: (New file). * mc-boot/GASCII.h: (New file). * mc-boot/GArgs.c: (New file). * mc-boot/GArgs.h: (New file). * mc-boot/GAssertion.c: (New file). * mc-boot/GAssertion.h: (New file). * mc-boot/GBreak.c: (New file). * mc-boot/GBreak.h: (New file). * mc-boot/GCOROUTINES.h: (New file). * mc-boot/GCmdArgs.c: (New file). * mc-boot/GCmdArgs.h: (New file). * mc-boot/GDebug.c: (New file). * mc-boot/GDebug.h: (New file). * mc-boot/GDynamicStrings.c: (New file). * mc-boot/GDynamicStrings.h: (New file). * mc-boot/GEnvironment.c: (New file). * mc-boot/GEnvironment.h: (New file). * mc-boot/GFIO.c: (New file). * mc-boot/GFIO.h: (New file). * mc-boot/GFormatStrings.c: (New file). * mc-boot/GFormatStrings.h: (New file). * mc-boot/GFpuIO.c: (New file). * mc-boot/GFpuIO.h: (New file). * mc-boot/GIO.c: (New file). * mc-boot/GIO.h: (New file). * mc-boot/GIndexing.c: (New file). * mc-boot/GIndexing.h: (New file). * mc-boot/GM2Dependent.c: (New file). * mc-boot/GM2Dependent.h: (New file). * mc-boot/GM2EXCEPTION.c: (New file). * mc-boot/GM2EXCEPTION.h: (New file). * mc-boot/GM2LINK.h: (New file). * mc-boot/GM2RTS.c: (New file). * mc-boot/GM2RTS.h: (New file). * mc-boot/GMemUtils.c: (New file). * mc-boot/GMemUtils.h: (New file). * mc-boot/GNumberIO.c: (New file). * mc-boot/GNumberIO.h: (New file). * mc-boot/GPushBackInput.c: (New file). * mc-boot/GPushBackInput.h: (New file). * mc-boot/GRTExceptions.c: (New file). * mc-boot/GRTExceptions.h: (New file). * mc-boot/GRTco.h: (New file). * mc-boot/GRTint.c: (New file). * mc-boot/GRTint.h: (New file). * mc-boot/GSArgs.c: (New file). * mc-boot/GSArgs.h: (New file). * mc-boot/GSFIO.c: (New file). * mc-boot/GSFIO.h: (New file). * mc-boot/GSYSTEM.h: (New file). * mc-boot/GSelective.h: (New file). * mc-boot/GStdIO.c: (New file). * mc-boot/GStdIO.h: (New file). * mc-boot/GStorage.c: (New file). * mc-boot/GStorage.h: (New file). * mc-boot/GStrCase.c: (New file). * mc-boot/GStrCase.h: (New file). * mc-boot/GStrIO.c: (New file). * mc-boot/GStrIO.h: (New file). * mc-boot/GStrLib.c: (New file). * mc-boot/GStrLib.h: (New file). * mc-boot/GStringConvert.c: (New file). * mc-boot/GStringConvert.h: (New file). * mc-boot/GSysExceptions.h: (New file). * mc-boot/GSysStorage.c: (New file). * mc-boot/GSysStorage.h: (New file). * mc-boot/GTimeString.c: (New file). * mc-boot/GTimeString.h: (New file). * mc-boot/GUnixArgs.h: (New file). * mc-boot/Galists.c: (New file). * mc-boot/Galists.h: (New file). * mc-boot/Gdecl.c: (New file). * mc-boot/Gdecl.h: (New file). * mc-boot/Gdtoa.h: (New file). * mc-boot/Gerrno.h: (New file). * mc-boot/Gkeyc.c: (New file). * mc-boot/Gkeyc.h: (New file). * mc-boot/Gldtoa.h: (New file). * mc-boot/Glibc.h: (New file). * mc-boot/Glibm.h: (New file). * mc-boot/Glists.c: (New file). * mc-boot/Glists.h: (New file). * mc-boot/GmcComment.c: (New file). * mc-boot/GmcComment.h: (New file). * mc-boot/GmcComp.c: (New file). * mc-boot/GmcComp.h: (New file). * mc-boot/GmcDebug.c: (New file). * mc-boot/GmcDebug.h: (New file). * mc-boot/GmcError.c: (New file). * mc-boot/GmcError.h: (New file). * mc-boot/GmcFileName.c: (New file). * mc-boot/GmcFileName.h: (New file). * mc-boot/GmcLexBuf.c: (New file). * mc-boot/GmcLexBuf.h: (New file). * mc-boot/GmcMetaError.c: (New file). * mc-boot/GmcMetaError.h: (New file). * mc-boot/GmcOptions.c: (New file). * mc-boot/GmcOptions.h: (New file). * mc-boot/GmcPreprocess.c: (New file). * mc-boot/GmcPreprocess.h: (New file). * mc-boot/GmcPretty.c: (New file). * mc-boot/GmcPretty.h: (New file). * mc-boot/GmcPrintf.c: (New file). * mc-boot/GmcPrintf.h: (New file). * mc-boot/GmcQuiet.c: (New file). * mc-boot/GmcQuiet.h: (New file). * mc-boot/GmcReserved.c: (New file). * mc-boot/GmcReserved.h: (New file). * mc-boot/GmcSearch.c: (New file). * mc-boot/GmcSearch.h: (New file). * mc-boot/GmcStack.c: (New file). * mc-boot/GmcStack.h: (New file). * mc-boot/GmcStream.c: (New file). * mc-boot/GmcStream.h: (New file). * mc-boot/Gmcflex.h: (New file). * mc-boot/Gmcp1.c: (New file). * mc-boot/Gmcp1.h: (New file). * mc-boot/Gmcp2.c: (New file). * mc-boot/Gmcp2.h: (New file). * mc-boot/Gmcp3.c: (New file). * mc-boot/Gmcp3.h: (New file). * mc-boot/Gmcp4.c: (New file). * mc-boot/Gmcp4.h: (New file). * mc-boot/Gmcp5.c: (New file). * mc-boot/Gmcp5.h: (New file). * mc-boot/GnameKey.c: (New file). * mc-boot/GnameKey.h: (New file). * mc-boot/Gpth.h: (New file). * mc-boot/GsymbolKey.c: (New file). * mc-boot/GsymbolKey.h: (New file). * mc-boot/Gtermios.h: (New file). * mc-boot/Gtop.c: (New file). * mc-boot/Gvarargs.c: (New file). * mc-boot/Gvarargs.h: (New file). * mc-boot/Gwlists.c: (New file). * mc-boot/Gwlists.h: (New file). * mc-boot/Gwrapc.h: (New file). * mc-boot/README: (New file). * mc/Indexing.def: (New file). * mc/Indexing.mod: (New file). * mc/README: (New file). * mc/alists.def: (New file). * mc/alists.mod: (New file). * mc/decl.def: (New file). * mc/decl.mod: (New file). * mc/decl.mod-extra: (New file). * mc/keyc.def: (New file). * mc/keyc.mod: (New file). * mc/lists.def: (New file). * mc/lists.mod: (New file). * mc/m2flex.def: (New file). * mc/mc.flex: (New file). * mc/mcComment.def: (New file). * mc/mcComment.h: (New file). * mc/mcComment.mod: (New file). * mc/mcComp.def: (New file). * mc/mcComp.mod: (New file). * mc/mcDebug.def: (New file). * mc/mcDebug.mod: (New file). * mc/mcError.def: (New file). * mc/mcError.mod: (New file). * mc/mcFileName.def: (New file). * mc/mcFileName.mod: (New file). * mc/mcLexBuf.def: (New file). * mc/mcLexBuf.h: (New file). * mc/mcLexBuf.mod: (New file). * mc/mcMetaError.def: (New file). * mc/mcMetaError.mod: (New file). * mc/mcOptions.def: (New file). * mc/mcOptions.mod: (New file). * mc/mcPreprocess.def: (New file). * mc/mcPreprocess.mod: (New file). * mc/mcPretty.def: (New file). * mc/mcPretty.mod: (New file). * mc/mcPrintf.def: (New file). * mc/mcPrintf.mod: (New file). * mc/mcQuiet.def: (New file). * mc/mcQuiet.mod: (New file). * mc/mcReserved.def: (New file). * mc/mcReserved.h: (New file). * mc/mcReserved.mod: (New file). * mc/mcSearch.def: (New file). * mc/mcSearch.mod: (New file). * mc/mcStack.def: (New file). * mc/mcStack.mod: (New file). * mc/mcStream.def: (New file). * mc/mcStream.mod: (New file). * mc/mcflex.def: (New file). * mc/mcp1.bnf: (New file). * mc/mcp1.def: (New file). * mc/mcp2.bnf: (New file). * mc/mcp2.def: (New file). * mc/mcp3.bnf: (New file). * mc/mcp3.def: (New file). * mc/mcp4.bnf: (New file). * mc/mcp4.def: (New file). * mc/mcp5.bnf: (New file). * mc/mcp5.def: (New file). * mc/nameKey.def: (New file). * mc/nameKey.mod: (New file). * mc/symbolKey.def: (New file). * mc/symbolKey.mod: (New file). * mc/top.mod: (New file). * mc/varargs.def: (New file). * mc/varargs.mod: (New file). * mc/wlists.def: (New file). * mc/wlists.mod: (New file). * pge-boot/GASCII.c: (New file). * pge-boot/GASCII.h: (New file). * pge-boot/GArgs.c: (New file). * pge-boot/GArgs.h: (New file). * pge-boot/GAssertion.c: (New file). * pge-boot/GAssertion.h: (New file). * pge-boot/GBreak.h: (New file). * pge-boot/GBuiltins.c: (New file). * pge-boot/GCmdArgs.h: (New file). * pge-boot/GDebug.c: (New file). * pge-boot/GDebug.h: (New file). * pge-boot/GDynamicStrings.c: (New file). * pge-boot/GDynamicStrings.h: (New file). * pge-boot/GEnvironment.h: (New file). * pge-boot/GFIO.c: (New file). * pge-boot/GFIO.h: (New file). * pge-boot/GFormatStrings.h: (New file). * pge-boot/GFpuIO.h: (New file). * pge-boot/GIO.c: (New file). * pge-boot/GIO.h: (New file). * pge-boot/GIndexing.c: (New file). * pge-boot/GIndexing.h: (New file). * pge-boot/GLists.c: (New file). * pge-boot/GLists.h: (New file). * pge-boot/GM2Dependent.c: (New file). * pge-boot/GM2Dependent.h: (New file). * pge-boot/GM2EXCEPTION.c: (New file). * pge-boot/GM2EXCEPTION.h: (New file). * pge-boot/GM2LINK.c: (New file). * pge-boot/GM2LINK.h: (New file). * pge-boot/GM2RTS.c: (New file). * pge-boot/GM2RTS.h: (New file). * pge-boot/GNameKey.c: (New file). * pge-boot/GNameKey.h: (New file). * pge-boot/GNumberIO.c: (New file). * pge-boot/GNumberIO.h: (New file). * pge-boot/GOutput.c: (New file). * pge-boot/GOutput.h: (New file). * pge-boot/GPushBackInput.c: (New file). * pge-boot/GPushBackInput.h: (New file). * pge-boot/GRTExceptions.c: (New file). * pge-boot/GRTExceptions.h: (New file). * pge-boot/GRTco.c: (New file). * pge-boot/GSArgs.h: (New file). * pge-boot/GSEnvironment.h: (New file). * pge-boot/GSFIO.c: (New file). * pge-boot/GSFIO.h: (New file). * pge-boot/GSYSTEM.c: (New file). * pge-boot/GSYSTEM.h: (New file). * pge-boot/GScan.h: (New file). * pge-boot/GSelective.c: (New file). * pge-boot/GStdIO.c: (New file). * pge-boot/GStdIO.h: (New file). * pge-boot/GStorage.c: (New file). * pge-boot/GStorage.h: (New file). * pge-boot/GStrCase.c: (New file). * pge-boot/GStrCase.h: (New file). * pge-boot/GStrIO.c: (New file). * pge-boot/GStrIO.h: (New file). * pge-boot/GStrLib.c: (New file). * pge-boot/GStrLib.h: (New file). * pge-boot/GStringConvert.h: (New file). * pge-boot/GSymbolKey.c: (New file). * pge-boot/GSymbolKey.h: (New file). * pge-boot/GSysExceptions.c: (New file). * pge-boot/GSysExceptions.h: (New file). * pge-boot/GSysStorage.c: (New file). * pge-boot/GSysStorage.h: (New file). * pge-boot/GTimeString.h: (New file). * pge-boot/GUnixArgs.cc: (New file). * pge-boot/GUnixArgs.h: (New file). * pge-boot/Gabort.c: (New file). * pge-boot/Gbnflex.c: (New file). * pge-boot/Gbnflex.h: (New file). * pge-boot/Gcbuiltin.c: (New file). * pge-boot/Gdtoa.c: (New file). * pge-boot/Gdtoa.h: (New file). * pge-boot/Gerrno.c: (New file). * pge-boot/Gerrno.h: (New file). * pge-boot/Gldtoa.c: (New file). * pge-boot/Gldtoa.h: (New file). * pge-boot/Glibc.c: (New file). * pge-boot/Glibc.h: (New file). * pge-boot/Glibm.c: (New file). * pge-boot/Glibm.h: (New file). * pge-boot/Gmcrts.c: (New file). * pge-boot/Gmcrts.h: (New file). * pge-boot/Gnetwork.h: (New file). * pge-boot/Gpge.c: (New file). * pge-boot/Gtermios.cc: (New file). * pge-boot/Gtermios.h: (New file). * pge-boot/Gwrapc.c: (New file). * pge-boot/Gwrapc.h: (New file). * pge-boot/README: (New file). * pge-boot/m2rts.h: (New file). * pge-boot/main.c: (New file). * pge-boot/network.c: (New file). * plugin/README: (New file). * plugin/m2rte.cc: (New file). * tools-src/README: (New file). * tools-src/boilerplate.py: (New file). * tools-src/buildpg: (New file). * tools-src/calcpath: (New file). * tools-src/def2doc.py: (New file). * tools-src/makeSystem: (New file). * tools-src/mklink.c: (New file). * tools-src/tidydates.py: (New file). * images/LICENSE.IMG: (New file). * images/gnupng: (New file). * images/gnu.eps: (New file). * version.c: (New file). * configure: (Rebuilt). gcc/testsuite/ChangeLog: * lib/gm2-dg.exp: (New file). * lib/gm2.exp: (New file). * lib/gm2-simple.exp: (New file). * lib/gm2-torture.exp: (New file). * gm2/calling-c/datatypes/unbounded/run/pass/c.c: (New file). * gm2/calling-c/datatypes/unbounded/run/pass/c.def: (New file). * gm2/calling-c/datatypes/unbounded/run/pass/calling-c-datatypes-unbounded-run-pass.exp: (New file). * gm2/calling-c/datatypes/unbounded/run/pass/m.mod: (New file). * gm2/case/pass/case-pass.exp: (New file). * gm2/case/pass/testcase1.mod: (New file). * gm2/case/pass/testcase2.mod: (New file). * gm2/case/pass/testcase3.mod: (New file). * gm2/case/pass/testcase4.mod: (New file). * gm2/complex/fail/var1.mod: (New file). * gm2/complex/pass/arith.mod: (New file). * gm2/complex/pass/arith2.mod: (New file). * gm2/complex/pass/arith3.mod: (New file). * gm2/complex/pass/arith4.mod: (New file). * gm2/complex/pass/arith5.mod: (New file). * gm2/complex/pass/arith6.mod: (New file). * gm2/complex/pass/complex-pass.exp: (New file). * gm2/complex/pass/consts.mod: (New file). * gm2/complex/pass/consts2.mod: (New file). * gm2/complex/pass/consts3.mod: (New file). * gm2/complex/pass/tinycabs.mod: (New file). * gm2/complex/pass/var1.mod: (New file). * gm2/complex/pass/var2.mod: (New file). * gm2/complex/pass/var3.mod: (New file). * gm2/complex/pass/var4.mod: (New file). * gm2/complex/pass/var5.mod: (New file). * gm2/complex/pass/var6.mod: (New file). * gm2/complex/pass/var7.mod: (New file). * gm2/complex/pass/var8.mod: (New file). * gm2/complex/run/pass/arith3.mod: (New file). * gm2/complex/run/pass/arith4.mod: (New file). * gm2/complex/run/pass/arith5.mod: (New file). * gm2/complex/run/pass/arith6.mod: (New file). * gm2/complex/run/pass/arith7.mod: (New file). * gm2/complex/run/pass/arith8.mod: (New file). * gm2/complex/run/pass/complex-run-pass.exp: (New file). * gm2/coroutines/pim/run/pass/coroutines-pim-run-pass.exp: (New file). * gm2/coroutines/pim/run/pass/testiotransfer.mod: (New file). * gm2/coroutines/pim/run/pass/testtransfer.mod: (New file). * gm2/cpp/fail/another.h: (New file). * gm2/cpp/fail/fail1.mod: (New file). * gm2/cpp/longcard2.mod: (New file). * gm2/cpp/longstrimp.mod: (New file). * gm2/cpp/pass/arrayhuge.mod: (New file). * gm2/cpp/pass/arrayhuge2.mod: (New file). * gm2/cpp/pass/cpp-pass.exp: (New file). * gm2/cpp/pass/cpp.mod: (New file). * gm2/cpp/pass/cpph.mod: (New file). * gm2/cpp/pass/subaddr.mod: (New file). * gm2/cpp/pass/testcpp.mod: (New file). * gm2/cpp/pass/testcpp2.mod: (New file). * gm2/cpp/setchar2.mod: (New file). * gm2/cpp/setchar6.mod: (New file). * gm2/cse/fail/cse-fail.exp: (New file). * gm2/cse/fail/testcse38.mod: (New file). * gm2/cse/pass/cse-pass.exp: (New file). * gm2/cse/pass/m2t.c: (New file). * gm2/cse/pass/testb.mod: (New file). * gm2/cse/pass/testbuiltin.def: (New file). * gm2/cse/pass/testbuiltin.mod: (New file). * gm2/cse/pass/testcse.def: (New file). * gm2/cse/pass/testcse.mod: (New file). * gm2/cse/pass/testcse10.mod: (New file). * gm2/cse/pass/testcse11.mod: (New file). * gm2/cse/pass/testcse12.mod: (New file). * gm2/cse/pass/testcse13.mod: (New file). * gm2/cse/pass/testcse14.mod: (New file). * gm2/cse/pass/testcse15.mod: (New file). * gm2/cse/pass/testcse16.mod: (New file). * gm2/cse/pass/testcse17.mod: (New file). * gm2/cse/pass/testcse18.mod: (New file). * gm2/cse/pass/testcse19.mod: (New file). * gm2/cse/pass/testcse2.mod: (New file). * gm2/cse/pass/testcse20.mod: (New file). * gm2/cse/pass/testcse21.mod: (New file). * gm2/cse/pass/testcse22.mod: (New file). * gm2/cse/pass/testcse23.mod: (New file). * gm2/cse/pass/testcse24.mod: (New file). * gm2/cse/pass/testcse25.mod: (New file). * gm2/cse/pass/testcse26.mod: (New file). * gm2/cse/pass/testcse27.mod: (New file). * gm2/cse/pass/testcse28.mod: (New file). * gm2/cse/pass/testcse29.mod: (New file). * gm2/cse/pass/testcse3.mod: (New file). * gm2/cse/pass/testcse31.mod: (New file). * gm2/cse/pass/testcse32.mod: (New file). * gm2/cse/pass/testcse33.mod: (New file). * gm2/cse/pass/testcse34.mod: (New file). * gm2/cse/pass/testcse35.mod: (New file). * gm2/cse/pass/testcse36.mod: (New file). * gm2/cse/pass/testcse37.mod: (New file). * gm2/cse/pass/testcse39.mod: (New file). * gm2/cse/pass/testcse4.c: (New file). * gm2/cse/pass/testcse4.mod: (New file). * gm2/cse/pass/testcse40.mod: (New file). * gm2/cse/pass/testcse41.mod: (New file). * gm2/cse/pass/testcse42.mod: (New file). * gm2/cse/pass/testcse43.mod: (New file). * gm2/cse/pass/testcse44.mod: (New file). * gm2/cse/pass/testcse45.mod: (New file). * gm2/cse/pass/testcse46.mod: (New file). * gm2/cse/pass/testcse47.mod: (New file). * gm2/cse/pass/testcse48.mod: (New file). * gm2/cse/pass/testcse49.mod: (New file). * gm2/cse/pass/testcse5.c: (New file). * gm2/cse/pass/testcse5.mod: (New file). * gm2/cse/pass/testcse50.def: (New file). * gm2/cse/pass/testcse50.mod: (New file). * gm2/cse/pass/testcse51.mod: (New file). * gm2/cse/pass/testcse52.def: (New file). * gm2/cse/pass/testcse52.mod: (New file). * gm2/cse/pass/testcse53.def: (New file). * gm2/cse/pass/testcse53.mod: (New file). * gm2/cse/pass/testcse6.c: (New file). * gm2/cse/pass/testcse6.mod: (New file). * gm2/cse/pass/testcse7.c: (New file). * gm2/cse/pass/testcse7.mod: (New file). * gm2/cse/pass/testcse8.c: (New file). * gm2/cse/pass/testcse8.mod: (New file). * gm2/cse/pass/testcse9.c: (New file). * gm2/cse/pass/testsize.mod: (New file). * gm2/dynamic/pass/add.mod: (New file). * gm2/dynamic/pass/dynamic-pass.exp: (New file). * gm2/dynamic/pass/prog21.mod: (New file). * gm2/dynamic/pass/testarray.mod: (New file). * gm2/dynamic/pass/testarray2.mod: (New file). * gm2/dynamic/pass/testarray3.mod: (New file). * gm2/dynamic/pass/testarray4.mod: (New file). * gm2/dynamic/pass/testarray6.mod: (New file). * gm2/dynamic/pass/testbec.mod: (New file). * gm2/dynamic/pass/testbec10.mod: (New file). * gm2/dynamic/pass/testbec11.mod: (New file). * gm2/dynamic/pass/testbec12.mod: (New file). * gm2/dynamic/pass/testbec13.mod: (New file). * gm2/dynamic/pass/testbec14.mod: (New file). * gm2/dynamic/pass/testbec15.mod: (New file). * gm2/dynamic/pass/testbec16.mod: (New file). * gm2/dynamic/pass/testbec17.mod: (New file). * gm2/dynamic/pass/testbec18.mod: (New file). * gm2/dynamic/pass/testbec19.mod: (New file). * gm2/dynamic/pass/testbec2.mod: (New file). * gm2/dynamic/pass/testbec20.mod: (New file). * gm2/dynamic/pass/testbec21.mod: (New file). * gm2/dynamic/pass/testbec22.mod: (New file). * gm2/dynamic/pass/testbec23.mod: (New file). * gm2/dynamic/pass/testbec24.mod: (New file). * gm2/dynamic/pass/testbec25.mod: (New file). * gm2/dynamic/pass/testbec26.mod: (New file). * gm2/dynamic/pass/testbec27.mod: (New file). * gm2/dynamic/pass/testbec28.mod: (New file). * gm2/dynamic/pass/testbec29.mod: (New file). * gm2/dynamic/pass/testbec3.mod: (New file). * gm2/dynamic/pass/testbec30.mod: (New file). * gm2/dynamic/pass/testbec31.mod: (New file). * gm2/dynamic/pass/testbec32.mod: (New file). * gm2/dynamic/pass/testbec33.mod: (New file). * gm2/dynamic/pass/testbec34.mod: (New file). * gm2/dynamic/pass/testbec35.mod: (New file). * gm2/dynamic/pass/testbec36.mod: (New file). * gm2/dynamic/pass/testbec37.mod: (New file). * gm2/dynamic/pass/testbec38.mod: (New file). * gm2/dynamic/pass/testbec39.mod: (New file). * gm2/dynamic/pass/testbec4.mod: (New file). * gm2/dynamic/pass/testbec40.mod: (New file). * gm2/dynamic/pass/testbec41.mod: (New file). * gm2/dynamic/pass/testbec42.mod: (New file). * gm2/dynamic/pass/testbec43.mod: (New file). * gm2/dynamic/pass/testbec44.mod: (New file). * gm2/dynamic/pass/testbec45.mod: (New file). * gm2/dynamic/pass/testbec5.mod: (New file). * gm2/dynamic/pass/testbec6.mod: (New file). * gm2/dynamic/pass/testbec7.mod: (New file). * gm2/dynamic/pass/testbec8.mod: (New file). * gm2/dynamic/pass/testbec9.mod: (New file). * gm2/dynamic/pass/testdavid.mod: (New file). * gm2/dynamic/pass/testdiv.mod: (New file). * gm2/dynamic/pass/testexp.mod: (New file). * gm2/dynamic/pass/testfor.mod: (New file). * gm2/dynamic/pass/testfor2.mod: (New file). * gm2/dynamic/pass/testfunc.mod: (New file). * gm2/dynamic/pass/testfunc2.mod: (New file). * gm2/dynamic/pass/testfunc3.mod: (New file). * gm2/dynamic/pass/testfunc4.mod: (New file). * gm2/dynamic/pass/testfunc5.mod: (New file). * gm2/dynamic/pass/testfunc6.mod: (New file). * gm2/dynamic/pass/testif.mod: (New file). * gm2/dynamic/pass/testit.mod: (New file). * gm2/dynamic/pass/testloop.mod: (New file). * gm2/dynamic/pass/testloop2.mod: (New file). * gm2/dynamic/pass/testloop3.mod: (New file). * gm2/dynamic/pass/testloop4.mod: (New file). * gm2/dynamic/pass/testloop5.mod: (New file). * gm2/dynamic/pass/testmin.mod: (New file). * gm2/dynamic/pass/testnum4.mod: (New file). * gm2/dynamic/pass/testord.mod: (New file). * gm2/dynamic/pass/testparam.mod: (New file). * gm2/dynamic/pass/testparam2.mod: (New file). * gm2/dynamic/pass/testproc.mod: (New file). * gm2/dynamic/pass/testproc2.c: (New file). * gm2/dynamic/pass/testproc2.def: (New file). * gm2/dynamic/pass/testproc2.mod: (New file). * gm2/dynamic/pass/testscn.mod: (New file). * gm2/dynamic/pass/testset.mod: (New file). * gm2/dynamic/pass/testset2.mod: (New file). * gm2/dynamic/pass/testset3.mod: (New file). * gm2/dynamic/pass/teststr.c: (New file). * gm2/dynamic/pass/teststr.mod: (New file). * gm2/dynamic/pass/teststr2.mod: (New file). * gm2/dynamic/pass/teststring.mod: (New file). * gm2/dynamic/pass/testunbounded.mod: (New file). * gm2/dynamic/pass/testwith.mod: (New file). * gm2/dynamic/pass/testzero.mod: (New file). * gm2/dynamic/pass/wc.mod: (New file). * gm2/embedded/pass/embedded-pass.exp: (New file). * gm2/embedded/pass/varataddress.mod: (New file). * gm2/embedded/pass/varataddress1.mod: (New file). * gm2/embedded/pass/varataddress2.mod: (New file). * gm2/embedded/pass/varataddress3.mod: (New file). * gm2/errors/fail/array1.mod: (New file). * gm2/errors/fail/badexpr.mod: (New file). * gm2/errors/fail/badfor.mod: (New file). * gm2/errors/fail/badhigh.mod: (New file). * gm2/errors/fail/badshift.mod: (New file). * gm2/errors/fail/badsubexpradr.mod: (New file). * gm2/errors/fail/binaryconst.mod: (New file). * gm2/errors/fail/binarygeneric.mod: (New file). * gm2/errors/fail/binarygenericconst.mod: (New file). * gm2/errors/fail/end.mod: (New file). * gm2/errors/fail/errors-fail.exp: (New file). * gm2/errors/fail/mismatched.mod: (New file). * gm2/errors/fail/mismatchedproc.mod: (New file). * gm2/errors/fail/nestedproc4.mod: (New file). * gm2/errors/fail/nomodule.mod: (New file). * gm2/errors/fail/proctype.mod: (New file). * gm2/errors/fail/prog110.mod: (New file). * gm2/errors/fail/prog111.mod: (New file). * gm2/errors/fail/prog113.mod: (New file). * gm2/errors/fail/prog114.mod: (New file). * gm2/errors/fail/testaddress.mod: (New file). * gm2/errors/fail/testarray.mod: (New file). * gm2/errors/fail/testbit.mod: (New file). * gm2/errors/fail/testbit2.mod: (New file). * gm2/errors/fail/testcase.mod: (New file). * gm2/errors/fail/testcomment.mod: (New file). * gm2/errors/fail/testcomment2.mod: (New file). * gm2/errors/fail/testcomment3.mod: (New file). * gm2/errors/fail/testconst.mod: (New file). * gm2/errors/fail/testdyn.mod: (New file). * gm2/errors/fail/testdyn2.mod: (New file). * gm2/errors/fail/testdyn3.mod: (New file). * gm2/errors/fail/testexp.mod: (New file). * gm2/errors/fail/testfio.mod: (New file). * gm2/errors/fail/testimport.mod: (New file). * gm2/errors/fail/testimport2.def: (New file). * gm2/errors/fail/testimport2.mod: (New file). * gm2/errors/fail/testinit.mod: (New file). * gm2/errors/fail/testmodule.mod: (New file). * gm2/errors/fail/testnil.mod: (New file). * gm2/errors/fail/testnil2.mod: (New file). * gm2/errors/fail/testparam.mod: (New file). * gm2/errors/fail/testproc.mod: (New file). * gm2/errors/fail/testproc2.mod: (New file). * gm2/errors/fail/testsize.mod: (New file). * gm2/errors/fail/teststring.mod: (New file). * gm2/errors/fail/testsub3.mod: (New file). * gm2/errors/fail/testsub4.mod: (New file). * gm2/errors/fail/testtype.mod: (New file). * gm2/errors/fail/testvar.mod: (New file). * gm2/errors/fail/testwith.mod: (New file). * gm2/errors/fail/testwrite.mod: (New file). * gm2/errors/fail/type.mod: (New file). * gm2/errors/fail/unarygeneric.mod: (New file). * gm2/errors/mustfail: (New file). * gm2/errors/options: (New file). * gm2/errors/testchar.mod: (New file). * gm2/errors/testsub2.mod: (New file). * gm2/examples/callingC/pass/examples-callingC-pass.exp: (New file). * gm2/examples/callingC/pass/hello.mod: (New file). * gm2/examples/callingC/pass/libprintf.def: (New file). * gm2/examples/callingC/run/pass/c.c: (New file). * gm2/examples/callingC/run/pass/c.def: (New file). * gm2/examples/callingC/run/pass/examples-callingC-run-pass.exp: (New file). * gm2/examples/callingC/run/pass/hello.mod: (New file). * gm2/examples/callingC/run/pass/libprintf.def: (New file). * gm2/examples/callingC/run/pass/m.mod: (New file). * gm2/examples/cpp/pass/examples-cpp-pass.exp: (New file). * gm2/examples/cpp/pass/hello.mod: (New file). * gm2/examples/cppDef/pass/a.def: (New file). * gm2/examples/cppDef/pass/a.mod: (New file). * gm2/examples/cppDef/pass/b.mod: (New file). * gm2/examples/cppDef/pass/examples-cppDef-pass.exp: (New file). * gm2/examples/cppDef/pass/libprintf.def: (New file). * gm2/examples/hello/pass/examples-hello-pass.exp: (New file). * gm2/examples/hello/pass/hello.mod: (New file). * gm2/examples/map/pass/AdvMap.def: (New file). * gm2/examples/map/pass/AdvMap.mod: (New file). * gm2/examples/map/pass/BoxMap.def: (New file). * gm2/examples/map/pass/BoxMap.mod: (New file). * gm2/examples/map/pass/Chance.def: (New file). * gm2/examples/map/pass/Chance.mod: (New file). * gm2/examples/map/pass/Find.def: (New file). * gm2/examples/map/pass/Find.mod: (New file). * gm2/examples/map/pass/Geometry.def: (New file). * gm2/examples/map/pass/Geometry.mod: (New file). * gm2/examples/map/pass/MakeBoxes.def: (New file). * gm2/examples/map/pass/MakeBoxes.mod: (New file). * gm2/examples/map/pass/Map.mod: (New file). * gm2/examples/map/pass/RoomMap.def: (New file). * gm2/examples/map/pass/RoomMap.mod: (New file). * gm2/examples/map/pass/Semantic.mod: (New file). * gm2/examples/map/pass/StoreCoord.def: (New file). * gm2/examples/map/pass/StoreCoord.mod: (New file). * gm2/examples/map/pass/StoreCoords.def: (New file). * gm2/examples/map/pass/StoreCoords.mod: (New file). * gm2/examples/map/pass/WriteMap.def: (New file). * gm2/examples/map/pass/WriteMap.mod: (New file). * gm2/examples/map/pass/examples-map-pass.exp: (New file). * gm2/examples/map/pass/makemaps: (New file). * gm2/examples/map/pass/testch2.mod: (New file). * gm2/examples/map/pass/testchan.mod: (New file). * gm2/examples/map/pass/testcoor.mod: (New file). * gm2/examples/map/pass/testmaps: (New file). * gm2/exceptions/run/pass/cpp.cpp: (New file). * gm2/exceptions/run/pass/cpp.def: (New file). * gm2/exceptions/run/pass/exceptions-run-pass.exp: (New file). * gm2/exceptions/run/pass/libexcept.mod: (New file). * gm2/exceptions/run/pass/m2test.def: (New file). * gm2/exceptions/run/pass/m2test.mod: (New file). * gm2/exceptions/run/pass/mycpp.cpp: (New file). * gm2/exceptions/run/pass/mycpp.def: (New file). * gm2/exceptions/run/pass/mym2.mod: (New file). * gm2/exceptions/run/pass/mym2a.mod: (New file). * gm2/extensions/pass/align.mod: (New file). * gm2/extensions/pass/align2.mod: (New file). * gm2/extensions/pass/card16p.mod: (New file). * gm2/extensions/pass/card32p.mod: (New file). * gm2/extensions/pass/card64p.mod: (New file). * gm2/extensions/pass/card8p.mod: (New file). * gm2/extensions/pass/co.def: (New file). * gm2/extensions/pass/co.mod: (New file). * gm2/extensions/pass/extensions-pass.exp: (New file). * gm2/extensions/pass/frame.mod: (New file). * gm2/extensions/pass/hello.mod: (New file). * gm2/extensions/pass/int16p.mod: (New file). * gm2/extensions/pass/int32p.mod: (New file). * gm2/extensions/pass/int64p.mod: (New file). * gm2/extensions/pass/int8p.mod: (New file). * gm2/extensions/pass/intsize8.mod: (New file). * gm2/extensions/pass/jmp.mod: (New file). * gm2/extensions/pass/libc.def: (New file). * gm2/extensions/pass/optparam.mod: (New file). * gm2/extensions/pass/optparam2.mod: (New file). * gm2/extensions/pass/return.mod: (New file). * gm2/extensions/pass/set8.mod: (New file). * gm2/extensions/pass/set8a.mod: (New file). * gm2/extensions/pass/set8b.mod: (New file). * gm2/extensions/pass/testco.mod: (New file). * gm2/extensions/run/fail/extensions-run-fail.exp: (New file). * gm2/extensions/run/fail/intsize8.mod: (New file). * gm2/extensions/run/pass/align3.mod: (New file). * gm2/extensions/run/pass/align4.mod: (New file). * gm2/extensions/run/pass/align5.mod: (New file). * gm2/extensions/run/pass/align6.mod: (New file). * gm2/extensions/run/pass/align7.mod: (New file). * gm2/extensions/run/pass/callingc.mod: (New file). * gm2/extensions/run/pass/card16p.mod: (New file). * gm2/extensions/run/pass/card32p.mod: (New file). * gm2/extensions/run/pass/card64p.mod: (New file). * gm2/extensions/run/pass/card8p.mod: (New file). * gm2/extensions/run/pass/column.mod: (New file). * gm2/extensions/run/pass/cvararg.c: (New file). * gm2/extensions/run/pass/cvararg.def: (New file). * gm2/extensions/run/pass/extensions-run-pass.exp: (New file). * gm2/extensions/run/pass/int16p.mod: (New file). * gm2/extensions/run/pass/int32p.mod: (New file). * gm2/extensions/run/pass/int64p.mod: (New file). * gm2/extensions/run/pass/int8field.mod: (New file). * gm2/extensions/run/pass/int8p.mod: (New file). * gm2/extensions/run/pass/packedrecord.mod: (New file). * gm2/extensions/run/pass/packedrecord2.mod: (New file). * gm2/extensions/run/pass/real32.mod: (New file). * gm2/extensions/run/pass/real32a.mod: (New file). * gm2/extensions/run/pass/record.mod: (New file). * gm2/extensions/run/pass/testopen.mod: (New file). * gm2/extensions/run/pass/vararg.mod: (New file). * gm2/extensions/run/pass/vararg2.mod: (New file). * gm2/extensions/run/pass/vararg3.mod: (New file). * gm2/fpu/pass/five.mod: (New file). * gm2/fpu/pass/fp.def: (New file). * gm2/fpu/pass/fp.mod: (New file). * gm2/fpu/pass/fpu-pass.exp: (New file). * gm2/fpu/pass/one.mod: (New file). * gm2/fpu/pass/r1.mod: (New file). * gm2/fpu/pass/realconst.mod: (New file). * gm2/fpu/pass/testfp.mod: (New file). * gm2/fpu/pass/testfp2.mod: (New file). * gm2/fpu/pass/testfpu1.mod: (New file). * gm2/fpu/pass/testfpu2.mod: (New file). * gm2/fpu/pass/testfpu3.mod: (New file). * gm2/fpu/pass/testsin.mod: (New file). * gm2/imports/run/pass/c.def: (New file). * gm2/imports/run/pass/c.mod: (New file). * gm2/imports/run/pass/imports-run-pass.exp: (New file). * gm2/imports/run/pass/innermods.mod: (New file). * gm2/imports/run/pass/innermods2.mod: (New file). * gm2/imports/run/pass/innermods3.mod: (New file). * gm2/imports/run/pass/innermods4.mod: (New file). * gm2/imports/run/pass/innermods5.def: (New file). * gm2/imports/run/pass/innermods5.mod: (New file). * gm2/imports/run/pass/innermods6.mod: (New file). * gm2/integer/div.mod: (New file). * gm2/integer/expr.mod: (New file). * gm2/integer/mod.mod: (New file). * gm2/integer/mod2.mod: (New file). * gm2/integer/one.mod: (New file). * gm2/integer/options: (New file). * gm2/integer/zero.mod: (New file). * gm2/iso/analysis/fail/Makefile: (New file). * gm2/iso/analysis/fail/arithoverflow.mod: (New file). * gm2/iso/analysis/fail/arithoverflow2.mod: (New file). * gm2/iso/analysis/fail/arithsubcard.mod: (New file). * gm2/iso/analysis/fail/arrayrange.mod: (New file). * gm2/iso/analysis/fail/assignvalue.mod: (New file). * gm2/iso/analysis/fail/callassignment.mod: (New file). * gm2/iso/analysis/fail/callassignment2.mod: (New file). * gm2/iso/analysis/fail/callassignment3.mod: (New file). * gm2/iso/analysis/fail/callassignment4.mod: (New file). * gm2/iso/analysis/fail/caserange.mod: (New file). * gm2/iso/analysis/fail/decvalue.mod: (New file). * gm2/iso/analysis/fail/forloop.mod: (New file). * gm2/iso/analysis/fail/incvalue.mod: (New file). * gm2/iso/analysis/fail/iso-analysis-fail.exp: (New file). * gm2/iso/analysis/fail/noreturn.mod: (New file). * gm2/iso/analysis/fail/returnvalue.mod: (New file). * gm2/iso/analysis/fail/staticarray.mod: (New file). * gm2/iso/check/fail/iso-check-fail.exp: (New file). * gm2/iso/check/fail/modulusoverflow.mod: (New file). * gm2/iso/fail/badarray.mod: (New file). * gm2/iso/fail/badarray2.mod: (New file). * gm2/iso/fail/badipv4.mod: (New file). * gm2/iso/fail/bug10.mod: (New file). * gm2/iso/fail/bug8.mod: (New file). * gm2/iso/fail/bug9.mod: (New file). * gm2/iso/fail/case.mod: (New file). * gm2/iso/fail/case2.mod: (New file). * gm2/iso/fail/case3.mod: (New file). * gm2/iso/fail/const1.mod: (New file). * gm2/iso/fail/constarray.mod: (New file). * gm2/iso/fail/constarray2.mod: (New file). * gm2/iso/fail/constprocedure.mod: (New file). * gm2/iso/fail/constrecord.mod: (New file). * gm2/iso/fail/constrecord2.mod: (New file). * gm2/iso/fail/constrecord3.mod: (New file). * gm2/iso/fail/constsubrange.mod: (New file). * gm2/iso/fail/constsubrange2.mod: (New file). * gm2/iso/fail/constsubrange3.mod: (New file). * gm2/iso/fail/defa.def: (New file). * gm2/iso/fail/defa.mod: (New file). * gm2/iso/fail/defb.def: (New file). * gm2/iso/fail/defb.mod: (New file). * gm2/iso/fail/defc.def: (New file). * gm2/iso/fail/defc.mod: (New file). * gm2/iso/fail/except.mod: (New file). * gm2/iso/fail/except2.mod: (New file). * gm2/iso/fail/iso-fail.exp: (New file). * gm2/iso/fail/isoa.def: (New file). * gm2/iso/fail/isoa.mod: (New file). * gm2/iso/fail/lengthsubexpr.mod: (New file). * gm2/iso/fail/proc.mod: (New file). * gm2/iso/fail/realbitscast.mod: (New file). * gm2/iso/fail/varient.mod: (New file). * gm2/iso/fail/varient2.mod: (New file). * gm2/iso/future/builtinlj.mod: (New file). * gm2/iso/pass/ChanConsts.def: (New file). * gm2/iso/pass/ChanConsts.mod: (New file). * gm2/iso/pass/ConvTypes.def: (New file). * gm2/iso/pass/ConvTypes.mod: (New file). * gm2/iso/pass/addadr1.mod: (New file). * gm2/iso/pass/bits32c.mod: (New file). * gm2/iso/pass/callwraptime.mod: (New file). * gm2/iso/pass/caseiso.mod: (New file). * gm2/iso/pass/caseiso2.mod: (New file). * gm2/iso/pass/cast.mod: (New file). * gm2/iso/pass/cast3.mod: (New file). * gm2/iso/pass/castiso.mod: (New file). * gm2/iso/pass/const1.mod: (New file). * gm2/iso/pass/constreal.mod: (New file). * gm2/iso/pass/constructor1.mod: (New file). * gm2/iso/pass/constructor2.mod: (New file). * gm2/iso/pass/constructor3.mod: (New file). * gm2/iso/pass/constructor4.mod: (New file). * gm2/iso/pass/constructor5.mod: (New file). * gm2/iso/pass/constructor6.mod: (New file). * gm2/iso/pass/constsize4.mod: (New file). * gm2/iso/pass/delim.mod: (New file). * gm2/iso/pass/delim2.mod: (New file). * gm2/iso/pass/enummodule.mod: (New file). * gm2/iso/pass/except1.mod: (New file). * gm2/iso/pass/expproc.mod: (New file). * gm2/iso/pass/expproc2.mod: (New file). * gm2/iso/pass/iso-pass.exp: (New file). * gm2/iso/pass/isob.def: (New file). * gm2/iso/pass/isob.mod: (New file). * gm2/iso/pass/isobitset.mod: (New file). * gm2/iso/pass/isobitset2.mod: (New file). * gm2/iso/pass/longm.mod: (New file). * gm2/iso/pass/m.mod: (New file). * gm2/iso/pass/proccast.mod: (New file). * gm2/iso/pass/realbitscast.mod: (New file). * gm2/iso/pass/set12.mod: (New file). * gm2/iso/pass/stringchar.mod: (New file). * gm2/iso/pass/subassign.mod: (New file). * gm2/iso/pass/testaddindr.mod: (New file). * gm2/iso/pass/testconv.def: (New file). * gm2/iso/pass/testconv.mod: (New file). * gm2/iso/pass/testconv2.def: (New file). * gm2/iso/pass/testconv2.mod: (New file). * gm2/iso/pass/testconv3.mod: (New file). * gm2/iso/pass/testconv4.mod: (New file). * gm2/iso/pass/testconv5.mod: (New file). * gm2/iso/pass/testconv6.mod: (New file). * gm2/iso/pass/testconv7.mod: (New file). * gm2/iso/pass/testconv8.mod: (New file). * gm2/iso/pass/testconv9.mod: (New file). * gm2/iso/pass/testiso.mod: (New file). * gm2/iso/pass/testiso2.mod: (New file). * gm2/iso/pass/testisosize.mod: (New file). * gm2/iso/pass/testlength.mod: (New file). * gm2/iso/pass/testlength2.mod: (New file). * gm2/iso/pass/testlength3.mod: (New file). * gm2/iso/pass/testlength4.mod: (New file). * gm2/iso/pass/testlength5.mod: (New file). * gm2/iso/pass/unbounded.mod: (New file). * gm2/iso/pass/unbounded2.mod: (New file). * gm2/iso/run/pass/adraddress.mod: (New file). * gm2/iso/run/pass/adrunbounded3.mod: (New file). * gm2/iso/run/pass/baseimport.mod: (New file). * gm2/iso/run/pass/compsize.mod: (New file). * gm2/iso/run/pass/concurrentstore.mod: (New file). * gm2/iso/run/pass/constprocedure.mod: (New file). * gm2/iso/run/pass/constructor1.mod: (New file). * gm2/iso/run/pass/constructor2.mod: (New file). * gm2/iso/run/pass/conststrarray.mod: (New file). * gm2/iso/run/pass/contimer.mod: (New file). * gm2/iso/run/pass/except.c: (New file). * gm2/iso/run/pass/except2.mod: (New file). * gm2/iso/run/pass/except3.cpp: (New file). * gm2/iso/run/pass/except4.mod: (New file). * gm2/iso/run/pass/except5.cpp: (New file). * gm2/iso/run/pass/except5.mod: (New file). * gm2/iso/run/pass/except6.cpp: (New file). * gm2/iso/run/pass/except7.mod: (New file). * gm2/iso/run/pass/except8.mod: (New file). * gm2/iso/run/pass/fileio.def: (New file). * gm2/iso/run/pass/fileio.mod: (New file). * gm2/iso/run/pass/hello.mod: (New file). * gm2/iso/run/pass/int8field.mod: (New file). * gm2/iso/run/pass/iso-run-pass.exp: (New file). * gm2/iso/run/pass/long.mod: (New file). * gm2/iso/run/pass/long2.mod: (New file). * gm2/iso/run/pass/long3.mod: (New file). * gm2/iso/run/pass/long4.c: (New file). * gm2/iso/run/pass/long4.mod: (New file). * gm2/iso/run/pass/minmax.mod: (New file). * gm2/iso/run/pass/modulus.mod: (New file). * gm2/iso/run/pass/nestediso.mod: (New file). * gm2/iso/run/pass/nestedrecord.mod: (New file). * gm2/iso/run/pass/onebyte.mod: (New file). * gm2/iso/run/pass/onebyte2.mod: (New file). * gm2/iso/run/pass/onebyte3.mod: (New file). * gm2/iso/run/pass/packed.mod: (New file). * gm2/iso/run/pass/proc.c: (New file). * gm2/iso/run/pass/proc.mod: (New file). * gm2/iso/run/pass/proc2.mod: (New file). * gm2/iso/run/pass/returnrecord.mod: (New file). * gm2/iso/run/pass/shift.mod: (New file). * gm2/iso/run/pass/shift2.mod: (New file). * gm2/iso/run/pass/shift3.mod: (New file). * gm2/iso/run/pass/shift4.mod: (New file). * gm2/iso/run/pass/simple: (New file). * gm2/iso/run/pass/simplelarge.mod: (New file). * gm2/iso/run/pass/strcons.mod: (New file). * gm2/iso/run/pass/strcons2.mod: (New file). * gm2/iso/run/pass/t.cpp: (New file). * gm2/iso/run/pass/t1.cpp: (New file). * gm2/iso/run/pass/testLength.mod: (New file). * gm2/iso/run/pass/testarray.mod: (New file). * gm2/iso/run/pass/testgeneric.mod: (New file). * gm2/iso/run/pass/testlarge.mod: (New file). * gm2/iso/run/pass/testsystem.mod: (New file). * gm2/iso/run/pass/tinyconst.mod: (New file). * gm2/iso/run/pass/tinyconst2.mod: (New file). * gm2/iso/run/pass/tinyconst3.mod: (New file). * gm2/iso/run/pass/tinyconst4.mod: (New file). * gm2/iso/run/pass/tinyconst5.mod: (New file). * gm2/iso/run/pass/tinytimer.mod: (New file). * gm2/iso/run/pass/trivialmodulus.mod: (New file). * gm2/iso/run/pass/tsize.mod: (New file). * gm2/iso/run/pass/tsize2.mod: (New file). * gm2/iso/run/pass/tstLength.mod: (New file). * gm2/iso/run/pass/unbounded.mod: (New file). * gm2/iso/run/pass/unbounded2.mod: (New file). * gm2/iso/run/pass/unbounded3.mod: (New file). * gm2/iso/run/pass/unbounded4.mod: (New file). * gm2/iso/run/pass/unbounded5.mod: (New file). * gm2/iso/run/pass/unbounded6.mod: (New file). * gm2/iso/run/pass/unbounded7.mod: (New file). * gm2/iso/run/pass/unbounded8.mod: (New file). * gm2/isocoroutines/run/pass/coroutine.mod: (New file). * gm2/isocoroutines/run/pass/isocoroutines-run-pass.exp: (New file). * gm2/isolib/run/pass/arraycons.mod: (New file). * gm2/isolib/run/pass/arraycons2.mod: (New file). * gm2/isolib/run/pass/arraycons3.mod: (New file). * gm2/isolib/run/pass/arraycons5.mod: (New file). * gm2/isolib/run/pass/arraycons6.mod: (New file). * gm2/isolib/run/pass/arraycons7.mod: (New file). * gm2/isolib/run/pass/arrayconst8.mod: (New file). * gm2/isolib/run/pass/exceptiontest.mod: (New file). * gm2/isolib/run/pass/filepos.mod: (New file). * gm2/isolib/run/pass/hello.mod: (New file). * gm2/isolib/run/pass/insert.mod: (New file). * gm2/isolib/run/pass/intconv.mod: (New file). * gm2/isolib/run/pass/isolib-run-pass.exp: (New file). * gm2/isolib/run/pass/longstr.mod: (New file). * gm2/isolib/run/pass/openlibc.mod: (New file). * gm2/isolib/run/pass/raise.mod: (New file). * gm2/isolib/run/pass/raise2.mod: (New file). * gm2/isolib/run/pass/readreal.mod: (New file). * gm2/isolib/run/pass/real1.mod: (New file). * gm2/isolib/run/pass/real2.mod: (New file). * gm2/isolib/run/pass/real3.mod: (New file). * gm2/isolib/run/pass/realconv.mod: (New file). * gm2/isolib/run/pass/realconv2.mod: (New file). * gm2/isolib/run/pass/realstr.mod: (New file). * gm2/isolib/run/pass/sigfig.mod: (New file). * gm2/isolib/run/pass/stringreal2.mod: (New file). * gm2/isolib/run/pass/termfile.mod-disabled: (New file). * gm2/isolib/run/pass/testappend.mod: (New file). * gm2/isolib/run/pass/testinput: (New file). * gm2/isolib/run/pass/testio.mod: (New file). * gm2/isolib/run/pass/testio2.mod: (New file). * gm2/isolib/run/pass/testmem.mod: (New file). * gm2/isolib/run/pass/testmem2.mod: (New file). * gm2/isolib/run/pass/testnumber: (New file). * gm2/isolib/run/pass/tiny.mod: (New file). * gm2/isolib/run/pass/tiny2.mod: (New file). * gm2/isolib/run/pass/tiny3.mod: (New file). * gm2/isolib/run/pass/tiny4.mod: (New file). * gm2/isolib/run/pass/tiny5.mod: (New file). * gm2/libs/a.def: (New file). * gm2/libs/a.mod: (New file). * gm2/libs/b.def: (New file). * gm2/libs/b.mod: (New file). * gm2/libs/testraw.mod: (New file). * gm2/link/externalscaffold/pass/hello.mod: (New file). * gm2/link/externalscaffold/pass/link-externalscaffold-pass.exp: (New file). * gm2/link/externalscaffold/pass/scaffold.c: (New file). * gm2/link/pim/fail/import.mod: (New file). * gm2/link/pim/fail/link-pim-fail.exp: (New file). * gm2/link/pim/pass/link-pim-pass.exp: (New file). * gm2/link/pimc/pass/README: (New file). * gm2/link/pimc/pass/link-pimc-pass.exp: (New file). * gm2/link/pimc/pass/testdtoa.mod: (New file). * gm2/link/pimc/pass/testerrno.mod: (New file). * gm2/link/pimc/pass/testgetopt.mod: (New file). * gm2/link/pimc/pass/testldtoa.mod: (New file). * gm2/link/pimc/pass/testlibc.mod: (New file). * gm2/link/pimc/pass/testlibc2.mod: (New file). * gm2/link/pimc/pass/testsckt.mod: (New file). * gm2/link/pimc/pass/testselective.mod: (New file). * gm2/link/pimc/pass/testsysexceptions.mod: (New file). * gm2/link/pimc/pass/testtermios.mod: (New file). * gm2/link/pimc/pass/testunixargs.mod: (New file). * gm2/link/pimc/pass/testwrapc.mod: (New file). * gm2/linking/libarchive/pass/c.c: (New file). * gm2/linking/libarchive/pass/c.def: (New file). * gm2/linking/libarchive/pass/d.def: (New file). * gm2/linking/libarchive/pass/e.def: (New file). * gm2/linking/libarchive/pass/linking-libarchive-pass.exp: (New file). * gm2/linking/libarchive/pass/m.mod: (New file). * gm2/linking/verbose/pass/hello.mod: (New file). * gm2/linking/verbose/pass/linking-verbose-pass.exp: (New file). * gm2/pim/fail/TestLong3.mod: (New file). * gm2/pim/fail/TestLong6.mod: (New file). * gm2/pim/fail/a.def: (New file). * gm2/pim/fail/assignbounds.mod: (New file). * gm2/pim/fail/assignsubrange.mod: (New file). * gm2/pim/fail/assignsubrange2.mod: (New file). * gm2/pim/fail/b.def: (New file). * gm2/pim/fail/bad.def: (New file). * gm2/pim/fail/badconst.mod: (New file). * gm2/pim/fail/badfunc.mod: (New file). * gm2/pim/fail/badparam.mod: (New file). * gm2/pim/fail/badparam2.mod: (New file). * gm2/pim/fail/badtype.mod: (New file). * gm2/pim/fail/badtypes.mod: (New file). * gm2/pim/fail/bits.mod: (New file). * gm2/pim/fail/bits2.mod: (New file). * gm2/pim/fail/bits3.mod: (New file). * gm2/pim/fail/bits4.mod: (New file). * gm2/pim/fail/cardword.mod: (New file). * gm2/pim/fail/constbec.mod: (New file). * gm2/pim/fail/constsize3.mod: (New file). * gm2/pim/fail/constvar.mod: (New file). * gm2/pim/fail/convert5.mod: (New file). * gm2/pim/fail/dupconst.mod: (New file). * gm2/pim/fail/dupenum.mod: (New file). * gm2/pim/fail/dupfield.mod: (New file). * gm2/pim/fail/duptype.mod: (New file). * gm2/pim/fail/dupvar.mod: (New file). * gm2/pim/fail/expression.mod: (New file). * gm2/pim/fail/expression2.mod: (New file). * gm2/pim/fail/expression3.mod: (New file). * gm2/pim/fail/func.mod: (New file). * gm2/pim/fail/good.def: (New file). * gm2/pim/fail/good.mod: (New file). * gm2/pim/fail/import.mod: (New file). * gm2/pim/fail/inserttok.def: (New file). * gm2/pim/fail/inserttok.mod: (New file). * gm2/pim/fail/integer.mod: (New file). * gm2/pim/fail/keyword.mod: (New file). * gm2/pim/fail/longtypes2.mod: (New file). * gm2/pim/fail/longtypes3.mod: (New file). * gm2/pim/fail/multisetf.mod: (New file). * gm2/pim/fail/nested3.mod: (New file). * gm2/pim/fail/opaque.mod: (New file). * gm2/pim/fail/opaque2.mod: (New file). * gm2/pim/fail/opasfail.mod: (New file). * gm2/pim/fail/opcpfail.mod: (New file). * gm2/pim/fail/pim-fail.exp: (New file). * gm2/pim/fail/procmod.mod: (New file). * gm2/pim/fail/rotate.mod: (New file). * gm2/pim/fail/rotate2.mod: (New file). * gm2/pim/fail/setbec.mod: (New file). * gm2/pim/fail/setequiv.mod: (New file). * gm2/pim/fail/setsnulf.mod: (New file). * gm2/pim/fail/settype.mod: (New file). * gm2/pim/fail/shift.mod: (New file). * gm2/pim/fail/shift2.mod: (New file). * gm2/pim/fail/subrange7.mod: (New file). * gm2/pim/fail/unary.mod: (New file). * gm2/pim/fail/undeclared.mod: (New file). * gm2/pim/fail/val.mod: (New file). * gm2/pim/fail/val2.mod: (New file). * gm2/pim/fail/wordconst.mod: (New file). * gm2/pim/no-options/run/pass/integer.mod: (New file). * gm2/pim/no-options/run/pass/pim-no-options-run-pass.exp: (New file). * gm2/pim/options/bounds/fail/IdentifierBug.mod: (New file). * gm2/pim/options/bounds/fail/pim-options-bounds-fail.exp: (New file). * gm2/pim/options/optimize/run/pass/addition.def: (New file). * gm2/pim/options/optimize/run/pass/addition.mod: (New file). * gm2/pim/options/optimize/run/pass/concat.mod: (New file). * gm2/pim/options/optimize/run/pass/pim-options-optimize-run-pass.exp: (New file). * gm2/pim/options/optimize/run/pass/testadd.mod: (New file). * gm2/pim/pass/ABSBug.mod: (New file). * gm2/pim/pass/TestLong4.mod: (New file). * gm2/pim/pass/TestLong7.mod: (New file). * gm2/pim/pass/TestLong8.mod: (New file). * gm2/pim/pass/TestLong9.mod: (New file). * gm2/pim/pass/another.mod: (New file). * gm2/pim/pass/aochar.mod: (New file). * gm2/pim/pass/array.mod: (New file). * gm2/pim/pass/array2.mod: (New file). * gm2/pim/pass/array3.mod: (New file). * gm2/pim/pass/array4.mod: (New file). * gm2/pim/pass/array5.mod: (New file). * gm2/pim/pass/array6.mod: (New file). * gm2/pim/pass/arraybool.mod: (New file). * gm2/pim/pass/arraychar.mod: (New file). * gm2/pim/pass/arraychar2.mod: (New file). * gm2/pim/pass/arraychar3.mod: (New file). * gm2/pim/pass/arrayconst1.mod: (New file). * gm2/pim/pass/arrayconst2.mod: (New file). * gm2/pim/pass/arrayconst3.mod: (New file). * gm2/pim/pass/arraydecl.mod: (New file). * gm2/pim/pass/arraydim.mod: (New file). * gm2/pim/pass/arraydyn.mod: (New file). * gm2/pim/pass/arrayeqiv.mod: (New file). * gm2/pim/pass/arrayfio.mod: (New file). * gm2/pim/pass/arrayhuge.mod: (New file). * gm2/pim/pass/arrayhuge2.mod: (New file). * gm2/pim/pass/arrayindex.mod: (New file). * gm2/pim/pass/arrayindirect.mod: (New file). * gm2/pim/pass/arrayinproc.mod: (New file). * gm2/pim/pass/arrayint.mod: (New file). * gm2/pim/pass/arrayofbyte.mod: (New file). * gm2/pim/pass/arrayofcard.mod: (New file). * gm2/pim/pass/arrayptr.mod: (New file). * gm2/pim/pass/arrayptr2.mod: (New file). * gm2/pim/pass/arrayptr3.mod: (New file). * gm2/pim/pass/arrayptr4.mod: (New file). * gm2/pim/pass/arrayptr5.mod: (New file). * gm2/pim/pass/arrayptr6.mod: (New file). * gm2/pim/pass/arrayrecord.mod: (New file). * gm2/pim/pass/arraytiny.c: (New file). * gm2/pim/pass/arraytiny.mod: (New file). * gm2/pim/pass/arraytype.mod: (New file). * gm2/pim/pass/arraytype2.mod: (New file). * gm2/pim/pass/arraytype3.mod: (New file). * gm2/pim/pass/arraytype4.mod: (New file). * gm2/pim/pass/assignment.mod: (New file). * gm2/pim/pass/assignment2.mod: (New file). * gm2/pim/pass/assignment3.mod: (New file). * gm2/pim/pass/assignment4.mod: (New file). * gm2/pim/pass/badpointer.mod: (New file). * gm2/pim/pass/bits32.def: (New file). * gm2/pim/pass/bits32.mod: (New file). * gm2/pim/pass/bits32i.mod: (New file). * gm2/pim/pass/bitset.mod: (New file). * gm2/pim/pass/bitset2.mod: (New file). * gm2/pim/pass/bitset3.mod: (New file). * gm2/pim/pass/bitset4.mod: (New file). * gm2/pim/pass/bitset5.mod: (New file). * gm2/pim/pass/bitsetfunc.mod: (New file). * gm2/pim/pass/block.mod: (New file). * gm2/pim/pass/blockindirect.mod: (New file). * gm2/pim/pass/builtin.def: (New file). * gm2/pim/pass/builtin.mod: (New file). * gm2/pim/pass/builtin2.mod: (New file). * gm2/pim/pass/builtinconst.mod: (New file). * gm2/pim/pass/bytearray.mod: (New file). * gm2/pim/pass/card.mod: (New file). * gm2/pim/pass/card2.mod: (New file). * gm2/pim/pass/char.mod: (New file). * gm2/pim/pass/char2.mod: (New file). * gm2/pim/pass/charproc.mod: (New file). * gm2/pim/pass/charset.mod: (New file). * gm2/pim/pass/charset2.mod: (New file). * gm2/pim/pass/charset3.mod: (New file). * gm2/pim/pass/checkparm.def: (New file). * gm2/pim/pass/checkparm.mod: (New file). * gm2/pim/pass/colour.mod: (New file). * gm2/pim/pass/comment1.mod: (New file). * gm2/pim/pass/complexarray.mod: (New file). * gm2/pim/pass/complextypes.mod: (New file). * gm2/pim/pass/constcast.mod: (New file). * gm2/pim/pass/constmax.mod: (New file). * gm2/pim/pass/constset.mod: (New file). * gm2/pim/pass/constset2.mod: (New file). * gm2/pim/pass/constset3.mod: (New file). * gm2/pim/pass/constsize.mod: (New file). * gm2/pim/pass/constsize2.mod: (New file). * gm2/pim/pass/convert.mod: (New file). * gm2/pim/pass/convert2.mod: (New file). * gm2/pim/pass/convert3.mod: (New file). * gm2/pim/pass/convert4.mod: (New file). * gm2/pim/pass/danglingelse.mod: (New file). * gm2/pim/pass/debug: (New file). * gm2/pim/pass/defset.def: (New file). * gm2/pim/pass/defset.mod: (New file). * gm2/pim/pass/deftype.mod: (New file). * gm2/pim/pass/divaddr.mod: (New file). * gm2/pim/pass/enum.mod: (New file). * gm2/pim/pass/enum2.mod: (New file). * gm2/pim/pass/enum3.mod: (New file). * gm2/pim/pass/file.mod: (New file). * gm2/pim/pass/filesystem.mod: (New file). * gm2/pim/pass/foo.mod: (New file). * gm2/pim/pass/foo2.mod: (New file). * gm2/pim/pass/for1.mod: (New file). * gm2/pim/pass/function.mod: (New file). * gm2/pim/pass/function2.mod: (New file). * gm2/pim/pass/gcd.def: (New file). * gm2/pim/pass/gcd.mod: (New file). * gm2/pim/pass/getconst.mod: (New file). * gm2/pim/pass/hello.mod: (New file). * gm2/pim/pass/impa.mod: (New file). * gm2/pim/pass/impb.def: (New file). * gm2/pim/pass/impb.mod: (New file). * gm2/pim/pass/impc.def: (New file). * gm2/pim/pass/impc.mod: (New file). * gm2/pim/pass/impd.mod: (New file). * gm2/pim/pass/impe.mod: (New file). * gm2/pim/pass/impf.mod: (New file). * gm2/pim/pass/impg.mod: (New file). * gm2/pim/pass/imph.mod: (New file). * gm2/pim/pass/impi.mod: (New file). * gm2/pim/pass/impj.mod: (New file). * gm2/pim/pass/impk.mod: (New file). * gm2/pim/pass/impl.mod: (New file). * gm2/pim/pass/impm.mod: (New file). * gm2/pim/pass/impn.def: (New file). * gm2/pim/pass/impn.mod: (New file). * gm2/pim/pass/impo.mod: (New file). * gm2/pim/pass/imports.mod: (New file). * gm2/pim/pass/impp.def: (New file). * gm2/pim/pass/impp.mod: (New file). * gm2/pim/pass/impq.def: (New file). * gm2/pim/pass/impq.mod: (New file). * gm2/pim/pass/incompsets.mod: (New file). * gm2/pim/pass/index.mod: (New file). * gm2/pim/pass/index2.mod: (New file). * gm2/pim/pass/indirect.mod: (New file). * gm2/pim/pass/inner.mod: (New file). * gm2/pim/pass/inner2.mod: (New file). * gm2/pim/pass/int.mod: (New file). * gm2/pim/pass/largeset.mod: (New file). * gm2/pim/pass/largeset1.mod: (New file). * gm2/pim/pass/largeset2.mod: (New file). * gm2/pim/pass/largeset3.mod: (New file). * gm2/pim/pass/largeset4.mod: (New file). * gm2/pim/pass/largeset5.mod: (New file). * gm2/pim/pass/largeset6.mod: (New file). * gm2/pim/pass/largeset7.mod: (New file). * gm2/pim/pass/localmod.mod: (New file). * gm2/pim/pass/localproc.mod: (New file). * gm2/pim/pass/localvar.mod: (New file). * gm2/pim/pass/log: (New file). * gm2/pim/pass/longint.mod: (New file). * gm2/pim/pass/longint2.mod: (New file). * gm2/pim/pass/longmm.mod: (New file). * gm2/pim/pass/longreal.mod: (New file). * gm2/pim/pass/longtypes.mod: (New file). * gm2/pim/pass/longtypes3.mod: (New file). * gm2/pim/pass/longtypes4.mod: (New file). * gm2/pim/pass/longtypes5.mod: (New file). * gm2/pim/pass/longtypes6.mod: (New file). * gm2/pim/pass/loopexit.mod: (New file). * gm2/pim/pass/math.mod: (New file). * gm2/pim/pass/maxlongint.mod: (New file). * gm2/pim/pass/maxreal.mod: (New file). * gm2/pim/pass/maxreal2.mod: (New file). * gm2/pim/pass/minmaxconst.mod: (New file). * gm2/pim/pass/minmaxconst2.mod: (New file). * gm2/pim/pass/modaddr.mod: (New file). * gm2/pim/pass/multaddr.mod: (New file). * gm2/pim/pass/multiple.mod: (New file). * gm2/pim/pass/multiset.mod: (New file). * gm2/pim/pass/multtypes.mod: (New file). * gm2/pim/pass/mydef.def: (New file). * gm2/pim/pass/negatives.def: (New file). * gm2/pim/pass/negatives.mod: (New file). * gm2/pim/pass/nested.mod: (New file). * gm2/pim/pass/nested2.mod: (New file). * gm2/pim/pass/nested3.mod: (New file). * gm2/pim/pass/nested4.mod: (New file). * gm2/pim/pass/nested5.mod: (New file). * gm2/pim/pass/nested6.mod: (New file). * gm2/pim/pass/nested7.mod: (New file). * gm2/pim/pass/nestedfor.mod: (New file). * gm2/pim/pass/nestedif.mod: (New file). * gm2/pim/pass/nestedset.mod: (New file). * gm2/pim/pass/onezero.mod: (New file). * gm2/pim/pass/opaque.def: (New file). * gm2/pim/pass/opaque.mod: (New file). * gm2/pim/pass/opaque2.mod: (New file). * gm2/pim/pass/opaquetype.def: (New file). * gm2/pim/pass/opaquetype.mod: (New file). * gm2/pim/pass/param.mod: (New file). * gm2/pim/pass/param2.mod: (New file). * gm2/pim/pass/param3.mod: (New file). * gm2/pim/pass/parambool.mod: (New file). * gm2/pim/pass/paramreal.mod: (New file). * gm2/pim/pass/pim-pass.exp: (New file). * gm2/pim/pass/pimimp.mod: (New file). * gm2/pim/pass/pointer.mod: (New file). * gm2/pim/pass/procadr.mod: (New file). * gm2/pim/pass/procconv.mod: (New file). * gm2/pim/pass/procconv2.mod: (New file). * gm2/pim/pass/procedure1.mod: (New file). * gm2/pim/pass/procedure2.mod: (New file). * gm2/pim/pass/procindirect.mod: (New file). * gm2/pim/pass/procmod.mod: (New file). * gm2/pim/pass/procmod2.mod: (New file). * gm2/pim/pass/procmod3.mod: (New file). * gm2/pim/pass/procmod31.mod: (New file). * gm2/pim/pass/procmod4.mod: (New file). * gm2/pim/pass/procmod5.mod: (New file). * gm2/pim/pass/procmod6.def: (New file). * gm2/pim/pass/procmod6.mod: (New file). * gm2/pim/pass/procmod7.mod: (New file). * gm2/pim/pass/procmod8.mod: (New file). * gm2/pim/pass/procmod9.mod: (New file). * gm2/pim/pass/proctype.mod: (New file). * gm2/pim/pass/proctype2.def: (New file). * gm2/pim/pass/proctype3.mod: (New file). * gm2/pim/pass/proctype4.mod: (New file). * gm2/pim/pass/program.mod: (New file). * gm2/pim/pass/program2.mod: (New file). * gm2/pim/pass/ptrarray.mod: (New file). * gm2/pim/pass/ptrarray2.mod: (New file). * gm2/pim/pass/ptrarray3.mod: (New file). * gm2/pim/pass/ptrcard.mod: (New file). * gm2/pim/pass/quads.def: (New file). * gm2/pim/pass/quads.mod: (New file). * gm2/pim/pass/real.mod: (New file). * gm2/pim/pass/real2.mod: (New file). * gm2/pim/pass/real3.mod: (New file). * gm2/pim/pass/realconst.mod: (New file). * gm2/pim/pass/realneg.mod: (New file). * gm2/pim/pass/realneg2.mod: (New file). * gm2/pim/pass/realone.mod: (New file). * gm2/pim/pass/realsize.mod: (New file). * gm2/pim/pass/record1.mod: (New file). * gm2/pim/pass/record10.mod: (New file). * gm2/pim/pass/record11.mod: (New file). * gm2/pim/pass/record12.def: (New file). * gm2/pim/pass/record13.def: (New file). * gm2/pim/pass/record14.def: (New file). * gm2/pim/pass/record15.def: (New file). * gm2/pim/pass/record16.def: (New file). * gm2/pim/pass/record2.mod: (New file). * gm2/pim/pass/record3.mod: (New file). * gm2/pim/pass/record4.mod: (New file). * gm2/pim/pass/record5.mod: (New file). * gm2/pim/pass/record6.mod: (New file). * gm2/pim/pass/record7.mod: (New file). * gm2/pim/pass/record8.mod: (New file). * gm2/pim/pass/record9.mod: (New file). * gm2/pim/pass/recordarray.c: (New file). * gm2/pim/pass/recordarray.mod: (New file). * gm2/pim/pass/recordarray2.mod: (New file). * gm2/pim/pass/redef.mod: (New file). * gm2/pim/pass/set10.mod: (New file). * gm2/pim/pass/set11.def: (New file). * gm2/pim/pass/set11.mod: (New file). * gm2/pim/pass/set12.mod: (New file). * gm2/pim/pass/set4.mod: (New file). * gm2/pim/pass/set5.mod: (New file). * gm2/pim/pass/set6.mod: (New file). * gm2/pim/pass/set7.mod: (New file). * gm2/pim/pass/set8.mod: (New file). * gm2/pim/pass/set9.mod: (New file). * gm2/pim/pass/setchar.mod: (New file). * gm2/pim/pass/setchar10.mod: (New file). * gm2/pim/pass/setchar11.mod: (New file). * gm2/pim/pass/setchar3.mod: (New file). * gm2/pim/pass/setchar4.mod: (New file). * gm2/pim/pass/setchar5.mod: (New file). * gm2/pim/pass/setchar7.mod: (New file). * gm2/pim/pass/setchar8.mod: (New file). * gm2/pim/pass/setchar9.mod: (New file). * gm2/pim/pass/setconst.mod: (New file). * gm2/pim/pass/setconst2.mod: (New file). * gm2/pim/pass/setconst3.mod: (New file). * gm2/pim/pass/setenum.mod: (New file). * gm2/pim/pass/setimp.mod: (New file). * gm2/pim/pass/setimp2.mod: (New file). * gm2/pim/pass/setofchar.mod: (New file). * gm2/pim/pass/setoverflow.mod: (New file). * gm2/pim/pass/sets.mod: (New file). * gm2/pim/pass/sets2.mod: (New file). * gm2/pim/pass/sets3.mod: (New file). * gm2/pim/pass/sets4.mod: (New file). * gm2/pim/pass/sets5.mod: (New file). * gm2/pim/pass/sets6.mod: (New file). * gm2/pim/pass/setsnul.mod: (New file). * gm2/pim/pass/settest1.mod: (New file). * gm2/pim/pass/settest2.mod: (New file). * gm2/pim/pass/settest3.mod: (New file). * gm2/pim/pass/simpleproc.mod: (New file). * gm2/pim/pass/sizes.mod: (New file). * gm2/pim/pass/sizetype.mod: (New file). * gm2/pim/pass/smallset1.mod: (New file). * gm2/pim/pass/smallset2.mod: (New file). * gm2/pim/pass/smallset3.mod: (New file). * gm2/pim/pass/smallset4.mod: (New file). * gm2/pim/pass/smallset5.mod: (New file). * gm2/pim/pass/smallset6.mod: (New file). * gm2/pim/pass/smallset7.mod: (New file). * gm2/pim/pass/stabs.mod: (New file). * gm2/pim/pass/stdio.mod: (New file). * gm2/pim/pass/str1.mod: (New file). * gm2/pim/pass/str2.mod: (New file). * gm2/pim/pass/str3.mod: (New file). * gm2/pim/pass/str4.mod: (New file). * gm2/pim/pass/str5.mod: (New file). * gm2/pim/pass/stressset.mod: (New file). * gm2/pim/pass/stringassign.mod: (New file). * gm2/pim/pass/stringopaq.mod: (New file). * gm2/pim/pass/strings.mod: (New file). * gm2/pim/pass/strparam.def: (New file). * gm2/pim/pass/strparam.mod: (New file). * gm2/pim/pass/subrange.mod: (New file). * gm2/pim/pass/subrange10.mod: (New file). * gm2/pim/pass/subrange11.mod: (New file). * gm2/pim/pass/subrange12.mod: (New file). * gm2/pim/pass/subrange14.mod: (New file). * gm2/pim/pass/subrange15.mod: (New file). * gm2/pim/pass/subrange16.mod: (New file). * gm2/pim/pass/subrange17.mod: (New file). * gm2/pim/pass/subrange2.mod: (New file). * gm2/pim/pass/subrange3.mod: (New file). * gm2/pim/pass/subrange4.mod: (New file). * gm2/pim/pass/subrange5.mod: (New file). * gm2/pim/pass/subrange6.mod: (New file). * gm2/pim/pass/subrange7.mod: (New file). * gm2/pim/pass/subrange8.mod: (New file). * gm2/pim/pass/subrange9.mod: (New file). * gm2/pim/pass/test2recursive.mod: (New file). * gm2/pim/pass/testabs.mod: (New file). * gm2/pim/pass/testbuiltin.mod: (New file). * gm2/pim/pass/testbuiltin2.mod: (New file). * gm2/pim/pass/testbuiltstr.mod: (New file). * gm2/pim/pass/testcap.mod: (New file). * gm2/pim/pass/testcap2.mod: (New file). * gm2/pim/pass/testcard.mod: (New file). * gm2/pim/pass/testcard2.mod: (New file). * gm2/pim/pass/testcard3.mod: (New file). * gm2/pim/pass/testcard4.mod: (New file). * gm2/pim/pass/testcard5.mod: (New file). * gm2/pim/pass/testcase.mod: (New file). * gm2/pim/pass/testcase2.mod: (New file). * gm2/pim/pass/testcase3.mod: (New file). * gm2/pim/pass/testcase4.mod: (New file). * gm2/pim/pass/testchar.mod: (New file). * gm2/pim/pass/testfloat.mod: (New file). * gm2/pim/pass/testfloat2.mod: (New file). * gm2/pim/pass/testfloat3.mod: (New file). * gm2/pim/pass/testfloat4.mod: (New file). * gm2/pim/pass/testfor.mod: (New file). * gm2/pim/pass/testimpvar.mod: (New file). * gm2/pim/pass/testlong3.mod: (New file). * gm2/pim/pass/testmod.mod: (New file). * gm2/pim/pass/testmod2.mod: (New file). * gm2/pim/pass/testodd.mod: (New file). * gm2/pim/pass/testopaque.mod: (New file). * gm2/pim/pass/testopaque2.mod: (New file). * gm2/pim/pass/testopaque3.mod: (New file). * gm2/pim/pass/testord.mod: (New file). * gm2/pim/pass/testparam.mod: (New file). * gm2/pim/pass/testparam2.mod: (New file). * gm2/pim/pass/testparam3.mod: (New file). * gm2/pim/pass/testpimsize.mod: (New file). * gm2/pim/pass/testrecursive.def: (New file). * gm2/pim/pass/testrecursive.mod: (New file). * gm2/pim/pass/testreturnstr.mod: (New file). * gm2/pim/pass/testset.mod: (New file). * gm2/pim/pass/testshort.mod: (New file). * gm2/pim/pass/testsinf.mod: (New file). * gm2/pim/pass/testsinl.mod: (New file). * gm2/pim/pass/testsize.mod: (New file). * gm2/pim/pass/testvar.mod: (New file). * gm2/pim/pass/testvarin.mod: (New file). * gm2/pim/pass/timeio.mod: (New file). * gm2/pim/pass/timeio2.mod: (New file). * gm2/pim/pass/timeio3.mod: (New file). * gm2/pim/pass/timeio4.mod: (New file). * gm2/pim/pass/timeio5.mod: (New file). * gm2/pim/pass/timeio6.mod: (New file). * gm2/pim/pass/timeio7.mod: (New file). * gm2/pim/pass/timeio8.mod: (New file). * gm2/pim/pass/timeio9.mod: (New file). * gm2/pim/pass/tinyalloc.mod: (New file). * gm2/pim/pass/tinyarray.mod: (New file). * gm2/pim/pass/tinyarray2.mod: (New file). * gm2/pim/pass/tinyarray3.mod: (New file). * gm2/pim/pass/tinyarray4.mod: (New file). * gm2/pim/pass/tinyarray5.mod: (New file). * gm2/pim/pass/tinyarray6.mod: (New file). * gm2/pim/pass/tinyassign.def: (New file). * gm2/pim/pass/tinyassign.mod: (New file). * gm2/pim/pass/tinyassign2.mod: (New file). * gm2/pim/pass/tinyassign3.mod: (New file). * gm2/pim/pass/tinyassign4.mod: (New file). * gm2/pim/pass/tinyassign5.mod: (New file). * gm2/pim/pass/tinybitset.mod: (New file). * gm2/pim/pass/tinyelse.mod: (New file). * gm2/pim/pass/tinyenum.mod: (New file). * gm2/pim/pass/tinyfor.mod: (New file). * gm2/pim/pass/tinyfor2.mod: (New file). * gm2/pim/pass/tinyfor3.mod: (New file). * gm2/pim/pass/tinyhalt.mod: (New file). * gm2/pim/pass/tinyhello.mod: (New file). * gm2/pim/pass/tinyif.mod: (New file). * gm2/pim/pass/tinyif2.mod: (New file). * gm2/pim/pass/tinyif3.mod: (New file). * gm2/pim/pass/tinyif4.mod: (New file). * gm2/pim/pass/tinyif5.mod: (New file). * gm2/pim/pass/tinyif6.mod: (New file). * gm2/pim/pass/tinyif7.mod: (New file). * gm2/pim/pass/tinyif8.mod: (New file). * gm2/pim/pass/tinyimp.mod: (New file). * gm2/pim/pass/tinylit.mod: (New file). * gm2/pim/pass/tinylit2.mod: (New file). * gm2/pim/pass/tinymax.mod: (New file). * gm2/pim/pass/tinymod.mod: (New file). * gm2/pim/pass/tinynode.mod: (New file). * gm2/pim/pass/tinyparam.mod: (New file). * gm2/pim/pass/tinyparam2.mod: (New file). * gm2/pim/pass/tinyplus.mod: (New file). * gm2/pim/pass/tinyproc.mod: (New file). * gm2/pim/pass/tinyproc2.mod: (New file). * gm2/pim/pass/tinyproc3.mod: (New file). * gm2/pim/pass/tinyproc4.mod: (New file). * gm2/pim/pass/tinyproc5.mod: (New file). * gm2/pim/pass/tinyproc6.mod: (New file). * gm2/pim/pass/tinyptr.mod: (New file). * gm2/pim/pass/tinyreal.mod: (New file). * gm2/pim/pass/tinyrecord.mod: (New file). * gm2/pim/pass/tinyrepeat.mod: (New file). * gm2/pim/pass/tinyset6.mod: (New file). * gm2/pim/pass/tinyset7.mod: (New file). * gm2/pim/pass/tinystate.mod: (New file). * gm2/pim/pass/tinysub.def: (New file). * gm2/pim/pass/tinytest.mod: (New file). * gm2/pim/pass/tinytrue.mod: (New file). * gm2/pim/pass/tinyvar.mod: (New file). * gm2/pim/pass/tinyvar2.mod: (New file). * gm2/pim/pass/tinyvar3.mod: (New file). * gm2/pim/pass/tinyvar4.mod: (New file). * gm2/pim/pass/tinyvar5.mod: (New file). * gm2/pim/pass/tinyvarient.mod: (New file). * gm2/pim/pass/tinyvarient2.mod: (New file). * gm2/pim/pass/tinyvarient3.def: (New file). * gm2/pim/pass/tinyvarient3.mod: (New file). * gm2/pim/pass/tinyvarient4.mod: (New file). * gm2/pim/pass/tinyvarient5.mod: (New file). * gm2/pim/pass/tinyvarient6.mod: (New file). * gm2/pim/pass/tinywhile.mod: (New file). * gm2/pim/pass/tinywith.mod: (New file). * gm2/pim/pass/tinywith2.mod: (New file). * gm2/pim/pass/tinywith3.mod: (New file). * gm2/pim/pass/tinywith4.mod: (New file). * gm2/pim/pass/tinywith5.mod: (New file). * gm2/pim/pass/tinywith6.mod: (New file). * gm2/pim/pass/trunc.mod: (New file). * gm2/pim/pass/try: (New file). * gm2/pim/pass/typeequiv.mod: (New file). * gm2/pim/pass/typeequiv2.mod: (New file). * gm2/pim/pass/typeequiv3.mod: (New file). * gm2/pim/pass/typeonly.def: (New file). * gm2/pim/pass/typeonly.mod: (New file). * gm2/pim/pass/typesize.mod: (New file). * gm2/pim/pass/unbounded.mod: (New file). * gm2/pim/pass/unbounded2.mod: (New file). * gm2/pim/pass/unbounded3.mod: (New file). * gm2/pim/pass/v.def: (New file). * gm2/pim/pass/varaddress.mod: (New file). * gm2/pim/pass/varaddress2.mod: (New file). * gm2/pim/pass/varaddress3.mod: (New file). * gm2/pim/pass/varcard.mod: (New file). * gm2/pim/pass/variant9.mod: (New file). * gm2/pim/pass/varient.mod: (New file). * gm2/pim/pass/varient2.mod: (New file). * gm2/pim/pass/varient3.mod: (New file). * gm2/pim/pass/varient4.mod: (New file). * gm2/pim/pass/varient5.mod: (New file). * gm2/pim/pass/varient6.mod: (New file). * gm2/pim/pass/varient7.mod: (New file). * gm2/pim/pass/varient8.mod: (New file). * gm2/pim/pass/varin.def: (New file). * gm2/pim/pass/varin.mod: (New file). * gm2/pim/pass/varint.mod: (New file). * gm2/pim/pass/wincat.mod: (New file). * gm2/pim/pass/with.mod: (New file). * gm2/pim/pass/wordconst.mod: (New file). * gm2/pim/run/fail/case.mod: (New file). * gm2/pim/run/fail/nil.mod: (New file). * gm2/pim/run/fail/pim-run-fail.exp: (New file). * gm2/pim/run/pass/Countdown.mod: (New file). * gm2/pim/run/pass/EndFor.def: (New file). * gm2/pim/run/pass/EndFor.mod: (New file). * gm2/pim/run/pass/EnumTest.mod: (New file). * gm2/pim/run/pass/For1.mod: (New file). * gm2/pim/run/pass/For10.mod: (New file). * gm2/pim/run/pass/For11.mod: (New file). * gm2/pim/run/pass/For12.mod: (New file). * gm2/pim/run/pass/For2.mod: (New file). * gm2/pim/run/pass/For3.mod: (New file). * gm2/pim/run/pass/For4.mod: (New file). * gm2/pim/run/pass/For5.mod: (New file). * gm2/pim/run/pass/For6.mod: (New file). * gm2/pim/run/pass/For7.mod: (New file). * gm2/pim/run/pass/For8.mod: (New file). * gm2/pim/run/pass/For9.mod: (New file). * gm2/pim/run/pass/FpuIOBug.mod: (New file). * gm2/pim/run/pass/MaxReal.mod: (New file). * gm2/pim/run/pass/MaxReal2.mod: (New file). * gm2/pim/run/pass/TestLong.mod: (New file). * gm2/pim/run/pass/TestLong2.mod: (New file). * gm2/pim/run/pass/TestLong4.mod: (New file). * gm2/pim/run/pass/TestLong5.mod: (New file). * gm2/pim/run/pass/addrarray.mod: (New file). * gm2/pim/run/pass/arraychar.mod: (New file). * gm2/pim/run/pass/arraychar2.mod: (New file). * gm2/pim/run/pass/arrayrecord.mod: (New file). * gm2/pim/run/pass/bitsettest.def: (New file). * gm2/pim/run/pass/bitsettest.mod: (New file). * gm2/pim/run/pass/bytearray.mod: (New file). * gm2/pim/run/pass/constdynstr.mod: (New file). * gm2/pim/run/pass/conststr.mod: (New file). * gm2/pim/run/pass/conststr2.mod: (New file). * gm2/pim/run/pass/cycles.mod: (New file). * gm2/pim/run/pass/dec.mod: (New file). * gm2/pim/run/pass/enums.mod: (New file). * gm2/pim/run/pass/incsubrange.def: (New file). * gm2/pim/run/pass/incsubrange.mod: (New file). * gm2/pim/run/pass/index3.mod: (New file). * gm2/pim/run/pass/int16.mod: (New file). * gm2/pim/run/pass/int32.mod: (New file). * gm2/pim/run/pass/int8.mod: (New file). * gm2/pim/run/pass/line.mod: (New file). * gm2/pim/run/pass/long.mod: (New file). * gm2/pim/run/pass/longfor.mod: (New file). * gm2/pim/run/pass/longtypes10.mod: (New file). * gm2/pim/run/pass/longtypes7.mod: (New file). * gm2/pim/run/pass/longtypes8.mod: (New file). * gm2/pim/run/pass/longtypes9.mod: (New file). * gm2/pim/run/pass/math.mod: (New file). * gm2/pim/run/pass/math2.mod: (New file). * gm2/pim/run/pass/mathconst.mod: (New file). * gm2/pim/run/pass/minhello.mod: (New file). * gm2/pim/run/pass/minimal.mod: (New file). * gm2/pim/run/pass/nestedproc.mod: (New file). * gm2/pim/run/pass/nestedproc2.mod: (New file). * gm2/pim/run/pass/nestedproc3.mod: (New file). * gm2/pim/run/pass/nestedproc4.mod: (New file). * gm2/pim/run/pass/nestedproc5.mod: (New file). * gm2/pim/run/pass/nestedproc6.mod: (New file). * gm2/pim/run/pass/nestedproc7.mod: (New file). * gm2/pim/run/pass/nestedwith.mod: (New file). * gm2/pim/run/pass/nestedwith2.mod: (New file). * gm2/pim/run/pass/nestedwith3.mod: (New file). * gm2/pim/run/pass/nothing.mod: (New file). * gm2/pim/run/pass/pim-run-pass.exp: (New file). * gm2/pim/run/pass/prog31ex.mod: (New file). * gm2/pim/run/pass/rts.mod: (New file). * gm2/pim/run/pass/setcritical.mod: (New file). * gm2/pim/run/pass/setequiv.mod: (New file). * gm2/pim/run/pass/str6.mod: (New file). * gm2/pim/run/pass/stringaddr.mod: (New file). * gm2/pim/run/pass/stringaddr2.def: (New file). * gm2/pim/run/pass/stringaddr2.mod: (New file). * gm2/pim/run/pass/stripped.mod: (New file). * gm2/pim/run/pass/sys.def: (New file). * gm2/pim/run/pass/sys.mod: (New file). * gm2/pim/run/pass/t.def: (New file). * gm2/pim/run/pass/testaddr.mod: (New file). * gm2/pim/run/pass/testaddr2.mod: (New file). * gm2/pim/run/pass/testaddr3.mod: (New file). * gm2/pim/run/pass/testarray.mod: (New file). * gm2/pim/run/pass/testarray2.mod: (New file). * gm2/pim/run/pass/testarray3.mod: (New file). * gm2/pim/run/pass/testarray4.mod: (New file). * gm2/pim/run/pass/testarray5.mod: (New file). * gm2/pim/run/pass/testavail.mod: (New file). * gm2/pim/run/pass/testdiv.mod: (New file). * gm2/pim/run/pass/testfpufunc.mod: (New file). * gm2/pim/run/pass/testfpufunc2.mod: (New file). * gm2/pim/run/pass/testlarge.mod: (New file). * gm2/pim/run/pass/testlarge2.mod: (New file). * gm2/pim/run/pass/testnextproc.mod: (New file). * gm2/pim/run/pass/testparam.mod: (New file). * gm2/pim/run/pass/testreturnstr.mod: (New file). * gm2/pim/run/pass/testreturnstr2.mod: (New file). * gm2/pim/run/pass/testreturnstr3.def: (New file). * gm2/pim/run/pass/testreturnstr3.mod: (New file). * gm2/pim/run/pass/testsize.mod: (New file). * gm2/pim/run/pass/testsize2.mod: (New file). * gm2/pim/run/pass/testsize3.mod: (New file). * gm2/pim/run/pass/testsize4.mod: (New file). * gm2/pim/run/pass/testtbitsize.mod: (New file). * gm2/pim/run/pass/tinywith.mod: (New file). * gm2/pim/run/pass/unbounded.mod: (New file). * gm2/pim/run/pass/varaddress3.mod: (New file). * gm2/pim/run/pass/varparam2.mod: (New file). * gm2/pim/run/pass/varparam3.mod: (New file). * gm2/pim/run/pass/varparm.mod: (New file). * gm2/pim/run/pass/wr.mod: (New file). * gm2/pimcoroutines/pass/imports.mod: (New file). * gm2/pimcoroutines/pass/imports2.mod: (New file). * gm2/pimcoroutines/pass/pimcoroutines-pass.exp: (New file). * gm2/pimcoroutines/run/pass/pimcoroutines-run-pass.exp: (New file). * gm2/pimcoroutines/run/pass/testtime.mod: (New file). * gm2/pimlib/base/run/pass/FIO.mod: (New file). * gm2/pimlib/base/run/pass/StrLib.mod: (New file). * gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp: (New file). * gm2/pimlib/base/run/pass/testconvert.mod: (New file). * gm2/pimlib/coroutines/pass/pimlib-coroutines-pass.exp: (New file). * gm2/pimlib/coroutines/pass/priority.mod: (New file). * gm2/pimlib/coroutines/pass/priority2.mod: (New file). * gm2/pimlib/coroutines/pass/priority3.def: (New file). * gm2/pimlib/coroutines/pass/priority3.mod: (New file). * gm2/pimlib/logitech/pass/LogitechLong.mod: (New file). * gm2/pimlib/logitech/pass/hello.mod: (New file). * gm2/pimlib/logitech/pass/pimlib-logitech-pass.exp: (New file). * gm2/pimlib/logitech/run/pass/bbits.mod: (New file). * gm2/pimlib/logitech/run/pass/hello.mod: (New file). * gm2/pimlib/logitech/run/pass/helloinout.mod: (New file). * gm2/pimlib/logitech/run/pass/intb.mod: (New file). * gm2/pimlib/logitech/run/pass/pimlib-logitech-run-pass.exp: (New file). * gm2/pimlib/logitech/run/pass/realconv.mod: (New file). * gm2/pimlib/logitech/run/pass/realinput.mod: (New file). * gm2/pimlib/logitech/run/pass/realinput2.mod: (New file). * gm2/pimlib/logitech/run/pass/realinput3.mod: (New file). * gm2/pimlib/logitech/run/pass/rename.mod: (New file). * gm2/pimlib/logitech/run/pass/timedate.mod: (New file). * gm2/pimlib/logitech/run/pass/writeoct.mod: (New file). * gm2/pimlib/pass/pimlib-pass.exp: (New file). * gm2/pimlib/run/pass/format.mod: (New file). * gm2/pimlib/run/pass/limittests.c: (New file). * gm2/pimlib/run/pass/limittests.mod: (New file). * gm2/pimlib/run/pass/longreal.mod: (New file). * gm2/pimlib/run/pass/pimlib-run-pass.exp: (New file). * gm2/pimlib/run/pass/test.c: (New file). * gm2/pimlib/run/pass/testreal.mod: (New file). * gm2/pimlib/run/pass/testreal2.mod: (New file). * gm2/pimlib/run/pass/testreal4.mod: (New file). * gm2/projects/README: (New file). * gm2/projects/iso/run/pass/halma/halma.mod: (New file). * gm2/projects/iso/run/pass/halma/projects-iso-run-pass-halma.exp: (New file). * gm2/projects/iso/run/pass/hello/hello.mod: (New file). * gm2/projects/iso/run/pass/hello/projects-iso-run-pass-hello.exp: (New file). * gm2/projects/log/run/pass/hello/hello.mod: (New file). * gm2/projects/log/run/pass/hello/projects-log-run-pass-hello.exp: (New file). * gm2/projects/pim/run/pass/hello/hello.mod: (New file). * gm2/projects/pim/run/pass/hello/projects-pim-run-pass-hello.exp: (New file). * gm2/projects/pim/run/pass/random/AdvMap.def: (New file). * gm2/projects/pim/run/pass/random/AdvMap.mod: (New file). * gm2/projects/pim/run/pass/random/BoxMap.def: (New file). * gm2/projects/pim/run/pass/random/BoxMap.mod: (New file). * gm2/projects/pim/run/pass/random/Chance.def: (New file). * gm2/projects/pim/run/pass/random/Chance.mod: (New file). * gm2/projects/pim/run/pass/random/Geometry.def: (New file). * gm2/projects/pim/run/pass/random/Geometry.mod: (New file). * gm2/projects/pim/run/pass/random/MakeBoxes.def: (New file). * gm2/projects/pim/run/pass/random/MakeBoxes.mod: (New file). * gm2/projects/pim/run/pass/random/Map.mod: (New file). * gm2/projects/pim/run/pass/random/MapOptions.def: (New file). * gm2/projects/pim/run/pass/random/MapOptions.mod: (New file). * gm2/projects/pim/run/pass/random/Options.def: (New file). * gm2/projects/pim/run/pass/random/Options.mod: (New file). * gm2/projects/pim/run/pass/random/RoomMap.def: (New file). * gm2/projects/pim/run/pass/random/RoomMap.mod: (New file). * gm2/projects/pim/run/pass/random/StoreCoords.def: (New file). * gm2/projects/pim/run/pass/random/StoreCoords.mod: (New file). * gm2/projects/pim/run/pass/random/WriteMap.def: (New file). * gm2/projects/pim/run/pass/random/WriteMap.mod: (New file). * gm2/projects/pim/run/pass/random/projects-pim-run-pass-random.exp: (New file). * gm2/quads/run/pass/becomes.mod: (New file). * gm2/quads/run/pass/param.mod: (New file). * gm2/quads/run/pass/quads-run-pass.exp: (New file). * gm2/quads/run/pass/return.mod: (New file). * gm2/recover/pass/cannot-solve/begin.mod: (New file). * gm2/recover/pass/cannot-solve/statementsemi.mod: (New file). * gm2/recover/pass/end2.mod: (New file). * gm2/recover/pass/of.mod: (New file). * gm2/recover/pass/procsemi.mod: (New file). * gm2/recover/pass/recover-pass.exp: (New file). * gm2/recover/pass/rrbra.mod: (New file). * gm2/recover/pass/rsbra.mod: (New file). * gm2/recover/pass/semi.mod: (New file). * gm2/run/fail/list.mod: (New file). * gm2/run/fail/options: (New file). * gm2/run/fail/testdec.mod: (New file). * gm2/run/fail/testfunc.mod: (New file). * gm2/run/pass/cycles.mod: (New file). * gm2/run/pass/line.mod: (New file). * gm2/run/pass/nestedproc.mod: (New file). * gm2/run/pass/nestedproc2.mod: (New file). * gm2/run/pass/nestedproc3.mod: (New file). * gm2/run/pass/nestedproc5.mod: (New file). * gm2/run/pass/nestedset.mod: (New file). * gm2/run/pass/nothing.mod: (New file). * gm2/run/pass/options: (New file). * gm2/run/pass/prog31ex.mod: (New file). * gm2/run/pass/rts.mod: (New file). * gm2/run/pass/stripped.mod: (New file). * gm2/run/pass/testavail.mod: (New file). * gm2/run/pass/testfpufunc.mod: (New file). * gm2/run/pass/testfpufunc2.mod: (New file). * gm2/run/pass/testnextproc.mod: (New file). * gm2/run/pass/testparam.mod: (New file). * gm2/run/pass/testsize.mod: (New file). * gm2/run/pass/testsize2.mod: (New file). * gm2/run/pass/testsize3.mod: (New file). * gm2/run/pass/wr.mod: (New file). * gm2/scripts/addit: (New file). * gm2/scripts/comp: (New file). * gm2/scripts/compile: (New file). * gm2/scripts/compileiso: (New file). * gm2/scripts/link: (New file). * gm2/scripts/regression: (New file). * gm2/scripts/subit: (New file). * gm2/sets/run/pass/multisetarith.mod: (New file). * gm2/sets/run/pass/multisetarith2.mod: (New file). * gm2/sets/run/pass/multisetarith3.mod: (New file). * gm2/sets/run/pass/multisetarith4.mod: (New file). * gm2/sets/run/pass/multisetrotate.mod: (New file). * gm2/sets/run/pass/multisetrotate2.mod: (New file). * gm2/sets/run/pass/multisetrotate3.mod: (New file). * gm2/sets/run/pass/multisetrotate4.mod: (New file). * gm2/sets/run/pass/multisetshift.mod: (New file). * gm2/sets/run/pass/multisetshift2.mod: (New file). * gm2/sets/run/pass/multisimple.mod: (New file). * gm2/sets/run/pass/multisimple2.mod: (New file). * gm2/sets/run/pass/multisimple3.mod: (New file). * gm2/sets/run/pass/multisimple4.mod: (New file). * gm2/sets/run/pass/multisimple5.mod: (New file). * gm2/sets/run/pass/multisimple6.mod: (New file). * gm2/sets/run/pass/multisimple7.mod: (New file). * gm2/sets/run/pass/setarith.mod: (New file). * gm2/sets/run/pass/setarith2.mod: (New file). * gm2/sets/run/pass/setarith3.mod: (New file). * gm2/sets/run/pass/setarith4.mod: (New file). * gm2/sets/run/pass/setrotate.mod: (New file). * gm2/sets/run/pass/setrotate2.mod: (New file). * gm2/sets/run/pass/setrotate3.mod: (New file). * gm2/sets/run/pass/setrotate4.mod: (New file). * gm2/sets/run/pass/sets-run-pass.exp: (New file). * gm2/sets/run/pass/setshift.mod: (New file). * gm2/sets/run/pass/setshift2.mod: (New file). * gm2/sets/run/pass/simple.mod: (New file). * gm2/sets/run/pass/simple2.mod: (New file). * gm2/sets/run/pass/simple3.mod: (New file). * gm2/sets/run/pass/simple4.mod: (New file). * gm2/sets/run/pass/simple5.mod: (New file). * gm2/sets/run/pass/simple6.mod: (New file). * gm2/sets/run/pass/simple7.mod: (New file). * gm2/switches/auto-init/fail/switches-auto-init-fail.exp: (New file). * gm2/switches/auto-init/fail/uninitptr.mod: (New file). * gm2/switches/auto-init/fail/uninitptr2.mod: (New file). * gm2/switches/check-all/pim2/fail/overflow.mod: (New file). * gm2/switches/check-all/pim2/fail/overflow2.mod: (New file). * gm2/switches/check-all/pim2/fail/overflowdiv1.mod: (New file). * gm2/switches/check-all/pim2/fail/switches-check-all-pim2-fail.exp: (New file). * gm2/switches/check-all/plugin/iso/fail/divceilposneg.mod: (New file). * gm2/switches/check-all/plugin/iso/fail/divceilposneg2.mod: (New file). * gm2/switches/check-all/plugin/iso/fail/divceilposnegcall.mod: (New file). * gm2/switches/check-all/plugin/iso/fail/divceilposnegcall2.mod: (New file). * gm2/switches/check-all/plugin/iso/fail/divfloornegpos.mod: (New file). * gm2/switches/check-all/plugin/iso/fail/divfloorpospos.mod: (New file). * gm2/switches/check-all/plugin/iso/fail/lowdiv.mod: (New file). * gm2/switches/check-all/plugin/iso/fail/switches-check-all-plugin-iso-fail.exp: (New file). * gm2/switches/check-all/plugin/pim2/fail/divceil.mod: (New file). * gm2/switches/check-all/plugin/pim2/fail/highdiv.mod: (New file). * gm2/switches/check-all/plugin/pim2/fail/modulus.mod: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin1.mod: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin3.mod: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin4.def: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin4.mod: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin5.def: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin5.mod: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin6.def: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin6.mod: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin7.def: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin7.mod: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin8.def: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin8.mod: (New file). * gm2/switches/check-all/plugin/pim2/fail/plugin9.mod: (New file). * gm2/switches/check-all/plugin/pim2/fail/switches-check-all-plugin-pim2-fail.exp: (New file). * gm2/switches/check-all/run/fail/cardrange.mod: (New file). * gm2/switches/check-all/run/fail/cardrange2.mod: (New file). * gm2/switches/check-all/run/fail/cardrange3.mod: (New file). * gm2/switches/check-all/run/fail/intrange.mod: (New file). * gm2/switches/check-all/run/fail/intrange2.mod: (New file). * gm2/switches/check-all/run/fail/intrange3.mod: (New file). * gm2/switches/check-all/run/fail/intrange4.mod: (New file). * gm2/switches/check-all/run/fail/intrange5.mod: (New file). * gm2/switches/check-all/run/fail/multint1.mod: (New file). * gm2/switches/check-all/run/fail/multint2.mod: (New file). * gm2/switches/check-all/run/fail/multint3.mod: (New file). * gm2/switches/check-all/run/fail/rangesupport.def: (New file). * gm2/switches/check-all/run/fail/rangesupport.mod: (New file). * gm2/switches/check-all/run/fail/realrange.mod: (New file). * gm2/switches/check-all/run/fail/subrange.mod: (New file). * gm2/switches/check-all/run/fail/switches-check-all-run-fail.exp: (New file). * gm2/switches/check-all/run/fail/tinyrange.mod: (New file). * gm2/switches/check-all/run/pass/cardrange.mod: (New file). * gm2/switches/check-all/run/pass/forcheck.mod: (New file). * gm2/switches/check-all/run/pass/subrange.mod: (New file). * gm2/switches/check-all/run/pass/switches-check-all-run-pass.exp: (New file). * gm2/switches/extended-opaque/fail/a.def: (New file). * gm2/switches/extended-opaque/fail/a.mod: (New file). * gm2/switches/extended-opaque/fail/switches-extended-opaque-fail.exp: (New file). * gm2/switches/extended-opaque/pass/a.def: (New file). * gm2/switches/extended-opaque/pass/a.mod: (New file). * gm2/switches/extended-opaque/pass/b.mod: (New file). * gm2/switches/extended-opaque/pass/switches-extended-opaque-pass.exp: (New file). * gm2/switches/iso/run/pass/modulus.mod: (New file). * gm2/switches/iso/run/pass/modulus4.mod: (New file). * gm2/switches/iso/run/pass/switches-iso-run-pass.exp: (New file). * gm2/switches/makeall/fail/switches-makeall-fail.exp: (New file). * gm2/switches/makeall/fail/test.def: (New file). * gm2/switches/makeall/fail/test.mod: (New file). * gm2/switches/makeall/pass/switches-makeall-pass.exp: (New file). * gm2/switches/makeall/pass/test.def: (New file). * gm2/switches/makeall/pass/test.mod: (New file). * gm2/switches/none/run/pass/gm2-none.exp: (New file). * gm2/switches/none/run/pass/hello.mod: (New file). * gm2/switches/optimization/run/pass/fact.mod: (New file). * gm2/switches/optimization/run/pass/switches-optimization-run-pass.exp: (New file). * gm2/switches/pedantic-params/fail/a.def: (New file). * gm2/switches/pedantic-params/fail/a.mod: (New file). * gm2/switches/pedantic-params/fail/switches-pedantic-params-fail.exp: (New file). * gm2/switches/pedantic-params/pass/Strings.def: (New file). * gm2/switches/pedantic-params/pass/Strings.mod: (New file). * gm2/switches/pedantic-params/pass/Strings2.def: (New file). * gm2/switches/pedantic-params/pass/Strings2.mod: (New file). * gm2/switches/pedantic-params/pass/switches-pedantic-params-pass.exp: (New file). * gm2/switches/pedantic/fail/onlywrite.mod: (New file). * gm2/switches/pedantic/fail/readb4.mod: (New file). * gm2/switches/pic/run/pass/func.c: (New file). * gm2/switches/pic/run/pass/func.mod: (New file). * gm2/switches/pic/run/pass/func2.c: (New file). * gm2/switches/pic/run/pass/func2.mod: (New file). * gm2/switches/pic/run/pass/switches-pic-run-pass.exp: (New file). * gm2/switches/pim2/run/pass/modulus.mod: (New file). * gm2/switches/pim2/run/pass/switches-pim2-run-pass.exp: (New file). * gm2/switches/pim3/run/pass/modulus.mod: (New file). * gm2/switches/pim3/run/pass/switches-pim3-run-pass.exp: (New file). * gm2/switches/pim4/run/pass/FpuIOBug.mod: (New file). * gm2/switches/pim4/run/pass/InOutBug.mod: (New file). * gm2/switches/pim4/run/pass/NumberIOBug.mod: (New file). * gm2/switches/pim4/run/pass/modulus.mod: (New file). * gm2/switches/pim4/run/pass/modulus2.mod: (New file). * gm2/switches/pim4/run/pass/switches-pim4-run-pass.exp: (New file). * gm2/switches/whole-program/pass/run/hello.mod: (New file). * gm2/switches/whole-program/pass/run/hello2.mod: (New file). * gm2/switches/whole-program/pass/run/switches-whole-program-pass-run.exp: (New file). * gm2/switches/whole-program/pass/run/tiny.mod: (New file). * gm2/switches/whole-program/pass/run/tiny2.mod: (New file). * gm2/types/bitset.mod: (New file). * gm2/types/bitset2.mod: (New file). * gm2/types/bitset3.mod: (New file). * gm2/types/charset.mod: (New file). * gm2/types/const.mod: (New file). * gm2/types/prog35.mod: (New file). * gm2/types/real.mod: (New file). * gm2/types/run/pass/d.c: (New file). * gm2/types/run/pass/d.def: (New file). * gm2/types/run/pass/types-run-pass.exp: (New file). * gm2/types/run/pass/varient4.mod: (New file). * gm2/types/run/pass/varient5.mod: (New file). * gm2/types/string.mod: (New file). * gm2/types/type1.mod: (New file). * gm2/types/type2.mod: (New file). * gm2/types/type3.mod: (New file). * gm2/types/type4.mod: (New file). * gm2/types/varient.mod: (New file). * gm2/types/word.mod: (New file). * gm2/ulmlib/pass/ulmlib-pass.exp: (New file). * gm2/ulmlib/std/pass/ulmlib-std-pass.exp: (New file). * gm2/ulmlib/sys/pass/ulmlib-sys-pass.exp: (New file). * gm2/warnings/todo/nestedproc6.mod: (New file). * gm2/warnings/todo/options: (New file). * gm2/warnings/todo/testfor.mod: (New file). * gm2/warnings/todo/testfor2.mod: (New file). * gm2/warnings/todo/testfor3.mod: (New file). * gm2/warnings/todo/testkeywords.mod: (New file). * gm2/warnings/todo/testloop.mod: (New file). * gm2/warnings/todo/testscope.mod: (New file). * gm2/warnings/todo/testscope2.mod: (New file). * gm2/x86-asm/asm.mod: (New file). * gm2/x86-asm/asm2.mod: (New file). Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
Diffstat (limited to 'gcc/m2/mc-boot/GDynamicStrings.c')
-rw-r--r--gcc/m2/mc-boot/GDynamicStrings.c2686
1 files changed, 2686 insertions, 0 deletions
diff --git a/gcc/m2/mc-boot/GDynamicStrings.c b/gcc/m2/mc-boot/GDynamicStrings.c
new file mode 100644
index 0000000..23ed7fb
--- /dev/null
+++ b/gcc/m2/mc-boot/GDynamicStrings.c
@@ -0,0 +1,2686 @@
+/* do not edit automatically generated by mc from DynamicStrings. */
+/* DynamicStrings.mod provides a dynamic string type and procedures.
+
+Copyright (C) 2001-2021 Free Software Foundation, Inc.
+Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
+
+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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+#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
+
+# if !defined (TRUE)
+# define TRUE (1==1)
+# endif
+
+# if !defined (FALSE)
+# define FALSE (1==0)
+# endif
+
+# include "GStorage.h"
+#if defined(__cplusplus)
+# undef NULL
+# define NULL 0
+#endif
+#define _DynamicStrings_H
+#define _DynamicStrings_C
+
+# include "Glibc.h"
+# include "GStrLib.h"
+# include "GStorage.h"
+# include "GAssertion.h"
+# include "GSYSTEM.h"
+# include "GASCII.h"
+# include "GM2RTS.h"
+
+# define MaxBuf 127
+# define PoisonOn FALSE
+# define DebugOn FALSE
+# define CheckOn FALSE
+# define TraceOn FALSE
+typedef struct DynamicStrings_Contents_r DynamicStrings_Contents;
+
+typedef struct DynamicStrings_DebugInfo_r DynamicStrings_DebugInfo;
+
+typedef struct DynamicStrings_stringRecord_r DynamicStrings_stringRecord;
+
+typedef struct DynamicStrings_descriptor_r DynamicStrings_descriptor;
+
+typedef DynamicStrings_descriptor *DynamicStrings_Descriptor;
+
+typedef struct DynamicStrings_frameRec_r DynamicStrings_frameRec;
+
+typedef DynamicStrings_frameRec *DynamicStrings_frame;
+
+typedef struct DynamicStrings__T3_a DynamicStrings__T3;
+
+typedef enum {DynamicStrings_inuse, DynamicStrings_marked, DynamicStrings_onlist, DynamicStrings_poisoned} DynamicStrings_desState;
+
+typedef DynamicStrings_stringRecord *DynamicStrings_String;
+
+struct DynamicStrings_DebugInfo_r {
+ DynamicStrings_String next;
+ void *file;
+ unsigned int line;
+ void *proc;
+ };
+
+struct DynamicStrings_descriptor_r {
+ unsigned int charStarUsed;
+ void *charStar;
+ unsigned int charStarSize;
+ unsigned int charStarValid;
+ DynamicStrings_desState state;
+ DynamicStrings_String garbage;
+ };
+
+struct DynamicStrings_frameRec_r {
+ DynamicStrings_String alloc;
+ DynamicStrings_String dealloc;
+ DynamicStrings_frame next;
+ };
+
+struct DynamicStrings__T3_a { char array[(MaxBuf-1)+1]; };
+struct DynamicStrings_Contents_r {
+ DynamicStrings__T3 buf;
+ unsigned int len;
+ DynamicStrings_String next;
+ };
+
+struct DynamicStrings_stringRecord_r {
+ DynamicStrings_Contents contents;
+ DynamicStrings_Descriptor head;
+ DynamicStrings_DebugInfo debug;
+ };
+
+static unsigned int Initialized;
+static DynamicStrings_frame frameHead;
+static DynamicStrings_String captured;
+
+/*
+ InitString - creates and returns a String type object.
+ Initial contents are, a.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_InitString (const char *a_, unsigned int _a_high);
+
+/*
+ KillString - frees String, s, and its contents.
+ NIL is returned.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_KillString (DynamicStrings_String s);
+
+/*
+ Fin - finishes with a string, it calls KillString with, s.
+ The purpose of the procedure is to provide a short cut
+ to calling KillString and then testing the return result.
+*/
+
+extern "C" void DynamicStrings_Fin (DynamicStrings_String s);
+
+/*
+ InitStringCharStar - initializes and returns a String to contain the C string.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_InitStringCharStar (void * a);
+
+/*
+ InitStringChar - initializes and returns a String to contain the single character, ch.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_InitStringChar (char ch);
+
+/*
+ Mark - marks String, s, ready for garbage collection.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_Mark (DynamicStrings_String s);
+
+/*
+ Length - returns the length of the String, s.
+*/
+
+extern "C" unsigned int DynamicStrings_Length (DynamicStrings_String s);
+
+/*
+ ConCat - returns String, a, after the contents of, b, have been appended.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_ConCat (DynamicStrings_String a, DynamicStrings_String b);
+
+/*
+ ConCatChar - returns String, a, after character, ch, has been appended.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_ConCatChar (DynamicStrings_String a, char ch);
+
+/*
+ Assign - assigns the contents of, b, into, a.
+ String, a, is returned.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_Assign (DynamicStrings_String a, DynamicStrings_String b);
+
+/*
+ Dup - duplicate a String, s, returning the copy of s.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_Dup (DynamicStrings_String s);
+
+/*
+ Add - returns a new String which contains the contents of a and b.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_Add (DynamicStrings_String a, DynamicStrings_String b);
+
+/*
+ Equal - returns TRUE if String, a, and, b, are equal.
+*/
+
+extern "C" unsigned int DynamicStrings_Equal (DynamicStrings_String a, DynamicStrings_String b);
+
+/*
+ EqualCharStar - returns TRUE if contents of String, s, is the same as the
+ string, a.
+*/
+
+extern "C" unsigned int DynamicStrings_EqualCharStar (DynamicStrings_String s, void * a);
+
+/*
+ EqualArray - returns TRUE if contents of String, s, is the same as the
+ string, a.
+*/
+
+extern "C" unsigned int DynamicStrings_EqualArray (DynamicStrings_String s, const char *a_, unsigned int _a_high);
+
+/*
+ Mult - returns a new string which is n concatenations of String, s.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_Mult (DynamicStrings_String s, unsigned int n);
+
+/*
+ Slice - returns a new string which contains the elements
+ low..high-1
+
+ strings start at element 0
+ Slice(s, 0, 2) will return elements 0, 1 but not 2
+ Slice(s, 1, 3) will return elements 1, 2 but not 3
+ Slice(s, 2, 0) will return elements 2..max
+ Slice(s, 3, -1) will return elements 3..max-1
+ Slice(s, 4, -2) will return elements 4..max-2
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s, int low, int high);
+
+/*
+ Index - returns the indice of the first occurance of, ch, in
+ String, s. -1 is returned if, ch, does not exist.
+ The search starts at position, o.
+*/
+
+extern "C" int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned int o);
+
+/*
+ RIndex - returns the indice of the last occurance of, ch,
+ in String, s. The search starts at position, o.
+ -1 is returned if, ch, is not found.
+*/
+
+extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned int o);
+
+/*
+ RemoveComment - assuming that, comment, is a comment delimiter
+ which indicates anything to its right is a comment
+ then strip off the comment and also any white space
+ on the remaining right hand side.
+ It leaves any white space on the left hand side alone.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_RemoveComment (DynamicStrings_String s, char comment);
+
+/*
+ RemoveWhitePrefix - removes any leading white space from String, s.
+ A new string is returned.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_RemoveWhitePrefix (DynamicStrings_String s);
+
+/*
+ RemoveWhitePostfix - removes any leading white space from String, s.
+ A new string is returned.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_RemoveWhitePostfix (DynamicStrings_String s);
+
+/*
+ ToUpper - returns string, s, after it has had its lower case characters
+ replaced by upper case characters.
+ The string, s, is not duplicated.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_ToUpper (DynamicStrings_String s);
+
+/*
+ ToLower - returns string, s, after it has had its upper case characters
+ replaced by lower case characters.
+ The string, s, is not duplicated.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_ToLower (DynamicStrings_String s);
+
+/*
+ CopyOut - copies string, s, to a.
+*/
+
+extern "C" void DynamicStrings_CopyOut (char *a, unsigned int _a_high, DynamicStrings_String s);
+
+/*
+ char - returns the character, ch, at position, i, in String, s.
+*/
+
+extern "C" char DynamicStrings_char (DynamicStrings_String s, int i);
+
+/*
+ string - returns the C style char * of String, s.
+*/
+
+extern "C" void * DynamicStrings_string (DynamicStrings_String s);
+
+/*
+ InitStringDB - the debug version of InitString.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_InitStringDB (const char *a_, unsigned int _a_high, const char *file_, unsigned int _file_high, unsigned int line);
+
+/*
+ InitStringCharStarDB - the debug version of InitStringCharStar.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_InitStringCharStarDB (void * a, const char *file_, unsigned int _file_high, unsigned int line);
+
+/*
+ InitStringCharDB - the debug version of InitStringChar.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_InitStringCharDB (char ch, const char *file_, unsigned int _file_high, unsigned int line);
+
+/*
+ MultDB - the debug version of MultDB.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_MultDB (DynamicStrings_String s, unsigned int n, const char *file_, unsigned int _file_high, unsigned int line);
+
+/*
+ DupDB - the debug version of Dup.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_DupDB (DynamicStrings_String s, const char *file_, unsigned int _file_high, unsigned int line);
+
+/*
+ SliceDB - debug version of Slice.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_SliceDB (DynamicStrings_String s, int low, int high, const char *file_, unsigned int _file_high, unsigned int line);
+
+/*
+ PushAllocation - pushes the current allocation/deallocation lists.
+*/
+
+extern "C" void DynamicStrings_PushAllocation (void);
+
+/*
+ PopAllocation - test to see that all strings are deallocated since
+ the last push. Then it pops to the previous
+ allocation/deallocation lists.
+
+ If halt is true then the application terminates
+ with an exit code of 1.
+*/
+
+extern "C" void DynamicStrings_PopAllocation (unsigned int halt);
+
+/*
+ PopAllocationExemption - test to see that all strings are deallocated, except
+ string, e, since the last push.
+ Then it pops to the previous allocation/deallocation
+ lists.
+
+ If halt is true then the application terminates
+ with an exit code of 1.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_PopAllocationExemption (unsigned int halt, DynamicStrings_String e);
+
+/*
+ writeStringDesc write out debugging information about string, s. */
+
+static void writeStringDesc (DynamicStrings_String s);
+
+/*
+ writeNspace -
+*/
+
+static void writeNspace (unsigned int n);
+
+/*
+ DumpStringInfo -
+*/
+
+static void DumpStringInfo (DynamicStrings_String s, unsigned int i);
+
+/*
+ DumpStringInfo -
+*/
+
+static void stop (void);
+
+/*
+ doDSdbEnter -
+*/
+
+static void doDSdbEnter (void);
+
+/*
+ doDSdbExit -
+*/
+
+static void doDSdbExit (DynamicStrings_String s);
+
+/*
+ DSdbEnter -
+*/
+
+static void DSdbEnter (void);
+
+/*
+ DSdbExit -
+*/
+
+static void DSdbExit (DynamicStrings_String s);
+static unsigned int Capture (DynamicStrings_String s);
+
+/*
+ Min -
+*/
+
+static unsigned int Min (unsigned int a, unsigned int b);
+
+/*
+ Max -
+*/
+
+static unsigned int Max (unsigned int a, unsigned int b);
+
+/*
+ writeString - writes a string to stdout.
+*/
+
+static void writeString (const char *a_, unsigned int _a_high);
+
+/*
+ writeCstring - writes a C string to stdout.
+*/
+
+static void writeCstring (void * a);
+
+/*
+ writeCard -
+*/
+
+static void writeCard (unsigned int c);
+
+/*
+ writeLongcard -
+*/
+
+static void writeLongcard (long unsigned int l);
+
+/*
+ writeAddress -
+*/
+
+static void writeAddress (void * a);
+
+/*
+ writeLn - writes a newline.
+*/
+
+static void writeLn (void);
+
+/*
+ AssignDebug - assigns, file, and, line, information to string, s.
+*/
+
+static DynamicStrings_String AssignDebug (DynamicStrings_String s, const char *file_, unsigned int _file_high, unsigned int line, const char *proc_, unsigned int _proc_high);
+
+/*
+ IsOn - returns TRUE if, s, is on one of the debug lists.
+*/
+
+static unsigned int IsOn (DynamicStrings_String list, DynamicStrings_String s);
+
+/*
+ AddTo - adds string, s, to, list.
+*/
+
+static void AddTo (DynamicStrings_String *list, DynamicStrings_String s);
+
+/*
+ SubFrom - removes string, s, from, list.
+*/
+
+static void SubFrom (DynamicStrings_String *list, DynamicStrings_String s);
+
+/*
+ AddAllocated - adds string, s, to the head of the allocated list.
+*/
+
+static void AddAllocated (DynamicStrings_String s);
+
+/*
+ AddDeallocated - adds string, s, to the head of the deallocated list.
+*/
+
+static void AddDeallocated (DynamicStrings_String s);
+
+/*
+ IsOnAllocated - returns TRUE if the string, s, has ever been allocated.
+*/
+
+static unsigned int IsOnAllocated (DynamicStrings_String s);
+
+/*
+ IsOnDeallocated - returns TRUE if the string, s, has ever been deallocated.
+*/
+
+static unsigned int IsOnDeallocated (DynamicStrings_String s);
+
+/*
+ SubAllocated - removes string, s, from the list of allocated strings.
+*/
+
+static void SubAllocated (DynamicStrings_String s);
+
+/*
+ SubDeallocated - removes string, s, from the list of deallocated strings.
+*/
+
+static void SubDeallocated (DynamicStrings_String s);
+
+/*
+ SubDebugInfo - removes string, s, from the list of allocated strings.
+*/
+
+static void SubDebugInfo (DynamicStrings_String s);
+
+/*
+ AddDebugInfo - adds string, s, to the list of allocated strings.
+*/
+
+static void AddDebugInfo (DynamicStrings_String s);
+
+/*
+ ConcatContents - add the contents of string, a, where, h, is the
+ total length of, a. The offset is in, o.
+*/
+
+static void ConcatContents (DynamicStrings_Contents *c, const char *a_, unsigned int _a_high, unsigned int h, unsigned int o);
+
+/*
+ DeallocateCharStar - deallocates any charStar.
+*/
+
+static void DeallocateCharStar (DynamicStrings_String s);
+
+/*
+ CheckPoisoned - checks for a poisoned string, s.
+*/
+
+static DynamicStrings_String CheckPoisoned (DynamicStrings_String s);
+
+/*
+ MarkInvalid - marks the char * version of String, s, as invalid.
+*/
+
+static void MarkInvalid (DynamicStrings_String s);
+
+/*
+ ConcatContentsAddress - concatenate the string, a, where, h, is the
+ total length of, a.
+*/
+
+static void ConcatContentsAddress (DynamicStrings_Contents *c, void * a, unsigned int h);
+
+/*
+ AddToGarbage - adds String, b, onto the garbage list of, a. Providing
+ the state of b is marked. The state is then altered to
+ onlist. String, a, is returned.
+*/
+
+static DynamicStrings_String AddToGarbage (DynamicStrings_String a, DynamicStrings_String b);
+
+/*
+ IsOnGarbage - returns TRUE if, s, is on string, e, garbage list.
+*/
+
+static unsigned int IsOnGarbage (DynamicStrings_String e, DynamicStrings_String s);
+
+/*
+ IsWhite - returns TRUE if, ch, is a space or a tab.
+*/
+
+static unsigned int IsWhite (char ch);
+
+/*
+ DumpState -
+*/
+
+static void DumpState (DynamicStrings_String s);
+
+/*
+ DumpStringSynopsis -
+*/
+
+static void DumpStringSynopsis (DynamicStrings_String s);
+
+/*
+ DumpString - displays the contents of string, s.
+*/
+
+static void DumpString (DynamicStrings_String s);
+
+/*
+ Init - initialize the module.
+*/
+
+static void Init (void);
+
+
+/*
+ writeStringDesc write out debugging information about string, s. */
+
+static void writeStringDesc (DynamicStrings_String s)
+{
+ writeCstring (s->debug.file);
+ writeString ((const char *) ":", 1);
+ writeCard (s->debug.line);
+ writeString ((const char *) ":", 1);
+ writeCstring (s->debug.proc);
+ writeString ((const char *) " ", 1);
+ writeAddress (reinterpret_cast<void *> (s));
+ writeString ((const char *) " ", 1);
+ switch (s->head->state)
+ {
+ case DynamicStrings_inuse:
+ writeString ((const char *) "still in use (", 14);
+ writeCard (s->contents.len);
+ writeString ((const char *) ") characters", 12);
+ break;
+
+ case DynamicStrings_marked:
+ writeString ((const char *) "marked", 6);
+ break;
+
+ case DynamicStrings_onlist:
+ writeString ((const char *) "on a (lost) garbage list", 24);
+ break;
+
+ case DynamicStrings_poisoned:
+ writeString ((const char *) "poisoned", 8);
+ break;
+
+
+ default:
+ writeString ((const char *) "unknown state", 13);
+ break;
+ }
+}
+
+
+/*
+ writeNspace -
+*/
+
+static void writeNspace (unsigned int n)
+{
+ while (n > 0)
+ {
+ writeString ((const char *) " ", 1);
+ n -= 1;
+ }
+}
+
+
+/*
+ DumpStringInfo -
+*/
+
+static void DumpStringInfo (DynamicStrings_String s, unsigned int i)
+{
+ DynamicStrings_String t;
+
+ if (s != NULL)
+ {
+ writeNspace (i);
+ writeStringDesc (s);
+ writeLn ();
+ if (s->head->garbage != NULL)
+ {
+ writeNspace (i);
+ writeString ((const char *) "garbage list:", 13);
+ writeLn ();
+ do {
+ s = s->head->garbage;
+ DumpStringInfo (s, i+1);
+ writeLn ();
+ } while (! (s == NULL));
+ }
+ }
+}
+
+
+/*
+ DumpStringInfo -
+*/
+
+static void stop (void)
+{
+}
+
+
+/*
+ doDSdbEnter -
+*/
+
+static void doDSdbEnter (void)
+{
+ if (CheckOn)
+ {
+ DynamicStrings_PushAllocation ();
+ }
+}
+
+
+/*
+ doDSdbExit -
+*/
+
+static void doDSdbExit (DynamicStrings_String s)
+{
+ if (CheckOn)
+ {
+ s = DynamicStrings_PopAllocationExemption (TRUE, s);
+ }
+}
+
+
+/*
+ DSdbEnter -
+*/
+
+static void DSdbEnter (void)
+{
+}
+
+
+/*
+ DSdbExit -
+*/
+
+static void DSdbExit (DynamicStrings_String s)
+{
+}
+
+static unsigned int Capture (DynamicStrings_String s)
+{
+ /*
+ * #undef GM2_DEBUG_DYNAMICSTINGS
+ * #if defined(GM2_DEBUG_DYNAMICSTINGS)
+ * # define DSdbEnter doDSdbEnter
+ * # define DSdbExit doDSdbExit
+ * # define CheckOn TRUE
+ * # define TraceOn TRUE
+ * #endif
+ */
+ captured = s;
+ return 1;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ Min -
+*/
+
+static unsigned int Min (unsigned int a, unsigned int b)
+{
+ if (a < b)
+ {
+ return a;
+ }
+ else
+ {
+ return b;
+ }
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ Max -
+*/
+
+static unsigned int Max (unsigned int a, unsigned int b)
+{
+ if (a > b)
+ {
+ return a;
+ }
+ else
+ {
+ return b;
+ }
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ writeString - writes a string to stdout.
+*/
+
+static void writeString (const char *a_, unsigned int _a_high)
+{
+ int i;
+ char a[_a_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+
+ i = static_cast<int> (libc_write (1, &a, static_cast<size_t> (StrLib_StrLen ((const char *) a, _a_high))));
+}
+
+
+/*
+ writeCstring - writes a C string to stdout.
+*/
+
+static void writeCstring (void * a)
+{
+ int i;
+
+ if (a == NULL)
+ {
+ writeString ((const char *) "(null)", 6);
+ }
+ else
+ {
+ i = static_cast<int> (libc_write (1, a, libc_strlen (a)));
+ }
+}
+
+
+/*
+ writeCard -
+*/
+
+static void writeCard (unsigned int c)
+{
+ char ch;
+ int i;
+
+ if (c > 9)
+ {
+ writeCard (c / 10);
+ writeCard (c % 10);
+ }
+ else
+ {
+ ch = ((char) ( ((unsigned int) ('0'))+c));
+ i = static_cast<int> (libc_write (1, &ch, static_cast<size_t> (1)));
+ }
+}
+
+
+/*
+ writeLongcard -
+*/
+
+static void writeLongcard (long unsigned int l)
+{
+ char ch;
+ int i;
+
+ if (l > 16)
+ {
+ writeLongcard (l / 16);
+ writeLongcard (l % 16);
+ }
+ else if (l < 10)
+ {
+ /* avoid dangling else. */
+ ch = ((char) ( ((unsigned int) ('0'))+((unsigned int ) (l))));
+ i = static_cast<int> (libc_write (1, &ch, static_cast<size_t> (1)));
+ }
+ else if (l < 16)
+ {
+ /* avoid dangling else. */
+ ch = ((char) (( ((unsigned int) ('a'))+((unsigned int ) (l)))-10));
+ i = static_cast<int> (libc_write (1, &ch, static_cast<size_t> (1)));
+ }
+}
+
+
+/*
+ writeAddress -
+*/
+
+static void writeAddress (void * a)
+{
+ writeLongcard ((long unsigned int ) (a));
+}
+
+
+/*
+ writeLn - writes a newline.
+*/
+
+static void writeLn (void)
+{
+ char ch;
+ int i;
+
+ ch = ASCII_lf;
+ i = static_cast<int> (libc_write (1, &ch, static_cast<size_t> (1)));
+}
+
+
+/*
+ AssignDebug - assigns, file, and, line, information to string, s.
+*/
+
+static DynamicStrings_String AssignDebug (DynamicStrings_String s, const char *file_, unsigned int _file_high, unsigned int line, const char *proc_, unsigned int _proc_high)
+{
+ void * f;
+ void * p;
+ char file[_file_high+1];
+ char proc[_proc_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (file, file_, _file_high+1);
+ memcpy (proc, proc_, _proc_high+1);
+
+ f = &file;
+ p = &proc;
+ Storage_ALLOCATE (&s->debug.file, (StrLib_StrLen ((const char *) file, _file_high))+1);
+ if ((libc_strncpy (s->debug.file, f, (StrLib_StrLen ((const char *) file, _file_high))+1)) == NULL)
+ {} /* empty. */
+ s->debug.line = line;
+ Storage_ALLOCATE (&s->debug.proc, (StrLib_StrLen ((const char *) proc, _proc_high))+1);
+ if ((libc_strncpy (s->debug.proc, p, (StrLib_StrLen ((const char *) proc, _proc_high))+1)) == NULL)
+ {} /* empty. */
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ IsOn - returns TRUE if, s, is on one of the debug lists.
+*/
+
+static unsigned int IsOn (DynamicStrings_String list, DynamicStrings_String s)
+{
+ while ((list != s) && (list != NULL))
+ {
+ list = list->debug.next;
+ }
+ return list == s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ AddTo - adds string, s, to, list.
+*/
+
+static void AddTo (DynamicStrings_String *list, DynamicStrings_String s)
+{
+ if ((*list) == NULL)
+ {
+ (*list) = s;
+ s->debug.next = NULL;
+ }
+ else
+ {
+ s->debug.next = (*list);
+ (*list) = s;
+ }
+}
+
+
+/*
+ SubFrom - removes string, s, from, list.
+*/
+
+static void SubFrom (DynamicStrings_String *list, DynamicStrings_String s)
+{
+ DynamicStrings_String p;
+
+ if ((*list) == s)
+ {
+ (*list) = s->debug.next;
+ }
+ else
+ {
+ p = (*list);
+ while ((p->debug.next != NULL) && (p->debug.next != s))
+ {
+ p = p->debug.next;
+ }
+ if (p->debug.next == s)
+ {
+ p->debug.next = s->debug.next;
+ }
+ else
+ {
+ /* not found, quit */
+ return ;
+ }
+ }
+ s->debug.next = NULL;
+}
+
+
+/*
+ AddAllocated - adds string, s, to the head of the allocated list.
+*/
+
+static void AddAllocated (DynamicStrings_String s)
+{
+ Init ();
+ AddTo (&frameHead->alloc, s);
+}
+
+
+/*
+ AddDeallocated - adds string, s, to the head of the deallocated list.
+*/
+
+static void AddDeallocated (DynamicStrings_String s)
+{
+ Init ();
+ AddTo (&frameHead->dealloc, s);
+}
+
+
+/*
+ IsOnAllocated - returns TRUE if the string, s, has ever been allocated.
+*/
+
+static unsigned int IsOnAllocated (DynamicStrings_String s)
+{
+ DynamicStrings_frame f;
+
+ Init ();
+ f = frameHead;
+ do {
+ if (IsOn (f->alloc, s))
+ {
+ return TRUE;
+ }
+ else
+ {
+ f = f->next;
+ }
+ } while (! (f == NULL));
+ return FALSE;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ IsOnDeallocated - returns TRUE if the string, s, has ever been deallocated.
+*/
+
+static unsigned int IsOnDeallocated (DynamicStrings_String s)
+{
+ DynamicStrings_frame f;
+
+ Init ();
+ f = frameHead;
+ do {
+ if (IsOn (f->dealloc, s))
+ {
+ return TRUE;
+ }
+ else
+ {
+ f = f->next;
+ }
+ } while (! (f == NULL));
+ return FALSE;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ SubAllocated - removes string, s, from the list of allocated strings.
+*/
+
+static void SubAllocated (DynamicStrings_String s)
+{
+ DynamicStrings_frame f;
+
+ Init ();
+ f = frameHead;
+ do {
+ if (IsOn (f->alloc, s))
+ {
+ SubFrom (&f->alloc, s);
+ return ;
+ }
+ else
+ {
+ f = f->next;
+ }
+ } while (! (f == NULL));
+}
+
+
+/*
+ SubDeallocated - removes string, s, from the list of deallocated strings.
+*/
+
+static void SubDeallocated (DynamicStrings_String s)
+{
+ DynamicStrings_frame f;
+
+ Init ();
+ f = frameHead;
+ do {
+ if (IsOn (f->dealloc, s))
+ {
+ SubFrom (&f->dealloc, s);
+ return ;
+ }
+ else
+ {
+ f = f->next;
+ }
+ } while (! (f == NULL));
+}
+
+
+/*
+ SubDebugInfo - removes string, s, from the list of allocated strings.
+*/
+
+static void SubDebugInfo (DynamicStrings_String s)
+{
+ if (IsOnDeallocated (s))
+ {
+ Assertion_Assert (! DebugOn);
+ /* string has already been deallocated */
+ return ;
+ }
+ if (IsOnAllocated (s))
+ {
+ SubAllocated (s);
+ AddDeallocated (s);
+ }
+ else
+ {
+ /* string has not been allocated */
+ Assertion_Assert (! DebugOn);
+ }
+}
+
+
+/*
+ AddDebugInfo - adds string, s, to the list of allocated strings.
+*/
+
+static void AddDebugInfo (DynamicStrings_String s)
+{
+ s->debug.next = NULL;
+ s->debug.file = NULL;
+ s->debug.line = 0;
+ s->debug.proc = NULL;
+ if (CheckOn)
+ {
+ AddAllocated (s);
+ }
+}
+
+
+/*
+ ConcatContents - add the contents of string, a, where, h, is the
+ total length of, a. The offset is in, o.
+*/
+
+static void ConcatContents (DynamicStrings_Contents *c, const char *a_, unsigned int _a_high, unsigned int h, unsigned int o)
+{
+ unsigned int i;
+ char a[_a_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+
+ i = (*c).len;
+ while ((o < h) && (i < MaxBuf))
+ {
+ (*c).buf.array[i] = a[o];
+ o += 1;
+ i += 1;
+ }
+ if (o < h)
+ {
+ (*c).len = MaxBuf;
+ Storage_ALLOCATE ((void **) &(*c).next, sizeof (DynamicStrings_stringRecord));
+ (*c).next->head = NULL;
+ (*c).next->contents.len = 0;
+ (*c).next->contents.next = NULL;
+ ConcatContents (&(*c).next->contents, (const char *) a, _a_high, h, o);
+ AddDebugInfo ((*c).next);
+ (*c).next = AssignDebug ((*c).next, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 722, (const char *) "ConcatContents", 14);
+ }
+ else
+ {
+ (*c).len = i;
+ }
+}
+
+
+/*
+ DeallocateCharStar - deallocates any charStar.
+*/
+
+static void DeallocateCharStar (DynamicStrings_String s)
+{
+ if ((s != NULL) && (s->head != NULL))
+ {
+ if (s->head->charStarUsed && (s->head->charStar != NULL))
+ {
+ Storage_DEALLOCATE (&s->head->charStar, s->head->charStarSize);
+ }
+ s->head->charStarUsed = FALSE;
+ s->head->charStar = NULL;
+ s->head->charStarSize = 0;
+ s->head->charStarValid = FALSE;
+ }
+}
+
+
+/*
+ CheckPoisoned - checks for a poisoned string, s.
+*/
+
+static DynamicStrings_String CheckPoisoned (DynamicStrings_String s)
+{
+ if (((PoisonOn && (s != NULL)) && (s->head != NULL)) && (s->head->state == DynamicStrings_poisoned))
+ {
+ M2RTS_HALT (-1);
+ __builtin_unreachable ();
+ }
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ MarkInvalid - marks the char * version of String, s, as invalid.
+*/
+
+static void MarkInvalid (DynamicStrings_String s)
+{
+ if (PoisonOn)
+ {
+ s = CheckPoisoned (s);
+ }
+ if (s->head != NULL)
+ {
+ s->head->charStarValid = FALSE;
+ }
+}
+
+
+/*
+ ConcatContentsAddress - concatenate the string, a, where, h, is the
+ total length of, a.
+*/
+
+static void ConcatContentsAddress (DynamicStrings_Contents *c, void * a, unsigned int h)
+{
+ typedef char *ConcatContentsAddress__T1;
+
+ ConcatContentsAddress__T1 p;
+ unsigned int i;
+ unsigned int j;
+
+ j = 0;
+ i = (*c).len;
+ p = static_cast<ConcatContentsAddress__T1> (a);
+ while ((j < h) && (i < MaxBuf))
+ {
+ (*c).buf.array[i] = (*p);
+ i += 1;
+ j += 1;
+ p += 1;
+ }
+ if (j < h)
+ {
+ /* avoid dangling else. */
+ (*c).len = MaxBuf;
+ Storage_ALLOCATE ((void **) &(*c).next, sizeof (DynamicStrings_stringRecord));
+ (*c).next->head = NULL;
+ (*c).next->contents.len = 0;
+ (*c).next->contents.next = NULL;
+ ConcatContentsAddress (&(*c).next->contents, reinterpret_cast<void *> (p), h-j);
+ AddDebugInfo ((*c).next);
+ if (TraceOn)
+ {
+ (*c).next = AssignDebug ((*c).next, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 917, (const char *) "ConcatContentsAddress", 21);
+ }
+ }
+ else
+ {
+ (*c).len = i;
+ (*c).next = NULL;
+ }
+}
+
+
+/*
+ AddToGarbage - adds String, b, onto the garbage list of, a. Providing
+ the state of b is marked. The state is then altered to
+ onlist. String, a, is returned.
+*/
+
+static DynamicStrings_String AddToGarbage (DynamicStrings_String a, DynamicStrings_String b)
+{
+ DynamicStrings_String c;
+
+ if (PoisonOn)
+ {
+ a = CheckPoisoned (a);
+ b = CheckPoisoned (b);
+ }
+ /*
+ IF (a#NIL) AND (a#b) AND (a^.head^.state=marked)
+ THEN
+ writeString('warning trying to add to a marked string') ; writeLn
+ END ;
+ */
+ if (((((a != b) && (a != NULL)) && (b != NULL)) && (b->head->state == DynamicStrings_marked)) && (a->head->state == DynamicStrings_inuse))
+ {
+ c = a;
+ while (c->head->garbage != NULL)
+ {
+ c = c->head->garbage;
+ }
+ c->head->garbage = b;
+ b->head->state = DynamicStrings_onlist;
+ if (CheckOn)
+ {
+ SubDebugInfo (b);
+ }
+ }
+ return a;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ IsOnGarbage - returns TRUE if, s, is on string, e, garbage list.
+*/
+
+static unsigned int IsOnGarbage (DynamicStrings_String e, DynamicStrings_String s)
+{
+ if ((e != NULL) && (s != NULL))
+ {
+ while (e->head->garbage != NULL)
+ {
+ if (e->head->garbage == s)
+ {
+ return TRUE;
+ }
+ else
+ {
+ e = e->head->garbage;
+ }
+ }
+ }
+ return FALSE;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ IsWhite - returns TRUE if, ch, is a space or a tab.
+*/
+
+static unsigned int IsWhite (char ch)
+{
+ return (ch == ' ') || (ch == ASCII_tab);
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ DumpState -
+*/
+
+static void DumpState (DynamicStrings_String s)
+{
+ switch (s->head->state)
+ {
+ case DynamicStrings_inuse:
+ writeString ((const char *) "still in use (", 14);
+ writeCard (s->contents.len);
+ writeString ((const char *) ") characters", 12);
+ break;
+
+ case DynamicStrings_marked:
+ writeString ((const char *) "marked", 6);
+ break;
+
+ case DynamicStrings_onlist:
+ writeString ((const char *) "on a garbage list", 17);
+ break;
+
+ case DynamicStrings_poisoned:
+ writeString ((const char *) "poisoned", 8);
+ break;
+
+
+ default:
+ writeString ((const char *) "unknown state", 13);
+ break;
+ }
+}
+
+
+/*
+ DumpStringSynopsis -
+*/
+
+static void DumpStringSynopsis (DynamicStrings_String s)
+{
+ writeCstring (s->debug.file);
+ writeString ((const char *) ":", 1);
+ writeCard (s->debug.line);
+ writeString ((const char *) ":", 1);
+ writeCstring (s->debug.proc);
+ writeString ((const char *) " string ", 8);
+ writeAddress (reinterpret_cast<void *> (s));
+ writeString ((const char *) " ", 1);
+ DumpState (s);
+ if (IsOnAllocated (s))
+ {
+ writeString ((const char *) " globally allocated", 19);
+ }
+ else if (IsOnDeallocated (s))
+ {
+ /* avoid dangling else. */
+ writeString ((const char *) " globally deallocated", 21);
+ }
+ else
+ {
+ /* avoid dangling else. */
+ writeString ((const char *) " globally unknown", 17);
+ }
+ writeLn ();
+}
+
+
+/*
+ DumpString - displays the contents of string, s.
+*/
+
+static void DumpString (DynamicStrings_String s)
+{
+ DynamicStrings_String t;
+
+ if (s != NULL)
+ {
+ DumpStringSynopsis (s);
+ if ((s->head != NULL) && (s->head->garbage != NULL))
+ {
+ writeString ((const char *) "display chained strings on the garbage list", 43);
+ writeLn ();
+ t = s->head->garbage;
+ while (t != NULL)
+ {
+ DumpStringSynopsis (t);
+ t = t->head->garbage;
+ }
+ }
+ }
+}
+
+
+/*
+ Init - initialize the module.
+*/
+
+static void Init (void)
+{
+ if (! Initialized)
+ {
+ Initialized = TRUE;
+ frameHead = NULL;
+ DynamicStrings_PushAllocation ();
+ }
+}
+
+
+/*
+ InitString - creates and returns a String type object.
+ Initial contents are, a.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_InitString (const char *a_, unsigned int _a_high)
+{
+ DynamicStrings_String s;
+ char a[_a_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+
+ Storage_ALLOCATE ((void **) &s, sizeof (DynamicStrings_stringRecord));
+ s->contents.len = 0;
+ s->contents.next = NULL;
+ ConcatContents (&s->contents, (const char *) a, _a_high, StrLib_StrLen ((const char *) a, _a_high), 0);
+ Storage_ALLOCATE ((void **) &s->head, sizeof (DynamicStrings_descriptor));
+ s->head->charStarUsed = FALSE;
+ s->head->charStar = NULL;
+ s->head->charStarSize = 0;
+ s->head->charStarValid = FALSE;
+ s->head->garbage = NULL;
+ s->head->state = DynamicStrings_inuse;
+ AddDebugInfo (s);
+ if (TraceOn)
+ {
+ s = AssignDebug (s, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 758, (const char *) "InitString", 10);
+ }
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ KillString - frees String, s, and its contents.
+ NIL is returned.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_KillString (DynamicStrings_String s)
+{
+ DynamicStrings_String t;
+
+ if (PoisonOn)
+ {
+ s = CheckPoisoned (s);
+ }
+ if (s != NULL)
+ {
+ if (CheckOn)
+ {
+ /* avoid gcc warning by using compound statement even if not strictly necessary. */
+ if (IsOnAllocated (s))
+ {
+ SubAllocated (s);
+ }
+ else if (IsOnDeallocated (s))
+ {
+ /* avoid dangling else. */
+ SubDeallocated (s);
+ }
+ }
+ if (s->head != NULL)
+ {
+ s->head->state = DynamicStrings_poisoned;
+ s->head->garbage = DynamicStrings_KillString (s->head->garbage);
+ if (! PoisonOn)
+ {
+ DeallocateCharStar (s);
+ }
+ if (! PoisonOn)
+ {
+ Storage_DEALLOCATE ((void **) &s->head, sizeof (DynamicStrings_descriptor));
+ s->head = NULL;
+ }
+ }
+ t = DynamicStrings_KillString (s->contents.next);
+ if (! PoisonOn)
+ {
+ Storage_DEALLOCATE ((void **) &s, sizeof (DynamicStrings_stringRecord));
+ }
+ }
+ return NULL;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ Fin - finishes with a string, it calls KillString with, s.
+ The purpose of the procedure is to provide a short cut
+ to calling KillString and then testing the return result.
+*/
+
+extern "C" void DynamicStrings_Fin (DynamicStrings_String s)
+{
+ if ((DynamicStrings_KillString (s)) != NULL)
+ {
+ M2RTS_HALT (-1);
+ __builtin_unreachable ();
+ }
+}
+
+
+/*
+ InitStringCharStar - initializes and returns a String to contain the C string.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_InitStringCharStar (void * a)
+{
+ DynamicStrings_String s;
+
+ Storage_ALLOCATE ((void **) &s, sizeof (DynamicStrings_stringRecord));
+ s->contents.len = 0;
+ s->contents.next = NULL;
+ if (a != NULL)
+ {
+ ConcatContentsAddress (&s->contents, a, static_cast<unsigned int> (libc_strlen (a)));
+ }
+ Storage_ALLOCATE ((void **) &s->head, sizeof (DynamicStrings_descriptor));
+ s->head->charStarUsed = FALSE;
+ s->head->charStar = NULL;
+ s->head->charStarSize = 0;
+ s->head->charStarValid = FALSE;
+ s->head->garbage = NULL;
+ s->head->state = DynamicStrings_inuse;
+ AddDebugInfo (s);
+ if (TraceOn)
+ {
+ s = AssignDebug (s, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 957, (const char *) "InitStringCharStar", 18);
+ }
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ InitStringChar - initializes and returns a String to contain the single character, ch.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_InitStringChar (char ch)
+{
+ typedef struct InitStringChar__T4_a InitStringChar__T4;
+
+ struct InitStringChar__T4_a { char array[1+1]; };
+ InitStringChar__T4 a;
+ DynamicStrings_String s;
+
+ a.array[0] = ch;
+ a.array[1] = ASCII_nul;
+ s = DynamicStrings_InitString ((const char *) &a.array[0], 1);
+ if (TraceOn)
+ {
+ s = AssignDebug (s, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 977, (const char *) "InitStringChar", 14);
+ }
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ Mark - marks String, s, ready for garbage collection.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_Mark (DynamicStrings_String s)
+{
+ if (PoisonOn)
+ {
+ s = CheckPoisoned (s);
+ }
+ if ((s != NULL) && (s->head->state == DynamicStrings_inuse))
+ {
+ s->head->state = DynamicStrings_marked;
+ }
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ Length - returns the length of the String, s.
+*/
+
+extern "C" unsigned int DynamicStrings_Length (DynamicStrings_String s)
+{
+ if (s == NULL)
+ {
+ return 0;
+ }
+ else
+ {
+ return s->contents.len+(DynamicStrings_Length (s->contents.next));
+ }
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ ConCat - returns String, a, after the contents of, b, have been appended.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_ConCat (DynamicStrings_String a, DynamicStrings_String b)
+{
+ DynamicStrings_String t;
+
+ if (PoisonOn)
+ {
+ a = CheckPoisoned (a);
+ b = CheckPoisoned (b);
+ }
+ if (a == b)
+ {
+ return DynamicStrings_ConCat (a, DynamicStrings_Mark (DynamicStrings_Dup (b)));
+ }
+ else if (a != NULL)
+ {
+ /* avoid dangling else. */
+ a = AddToGarbage (a, b);
+ MarkInvalid (a);
+ t = a;
+ while (b != NULL)
+ {
+ while ((t->contents.len == MaxBuf) && (t->contents.next != NULL))
+ {
+ t = t->contents.next;
+ }
+ ConcatContents (&t->contents, (const char *) &b->contents.buf.array[0], (MaxBuf-1), b->contents.len, 0);
+ b = b->contents.next;
+ }
+ }
+ if ((a == NULL) && (b != NULL))
+ {
+ M2RTS_HALT (-1);
+ __builtin_unreachable ();
+ }
+ return a;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ ConCatChar - returns String, a, after character, ch, has been appended.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_ConCatChar (DynamicStrings_String a, char ch)
+{
+ typedef struct ConCatChar__T5_a ConCatChar__T5;
+
+ struct ConCatChar__T5_a { char array[1+1]; };
+ ConCatChar__T5 b;
+ DynamicStrings_String t;
+
+ if (PoisonOn)
+ {
+ a = CheckPoisoned (a);
+ }
+ b.array[0] = ch;
+ b.array[1] = ASCII_nul;
+ t = a;
+ MarkInvalid (a);
+ while ((t->contents.len == MaxBuf) && (t->contents.next != NULL))
+ {
+ t = t->contents.next;
+ }
+ ConcatContents (&t->contents, (const char *) &b.array[0], 1, 1, 0);
+ return a;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ Assign - assigns the contents of, b, into, a.
+ String, a, is returned.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_Assign (DynamicStrings_String a, DynamicStrings_String b)
+{
+ if (PoisonOn)
+ {
+ a = CheckPoisoned (a);
+ b = CheckPoisoned (b);
+ }
+ if ((a != NULL) && (b != NULL))
+ {
+ a->contents.next = DynamicStrings_KillString (a->contents.next);
+ a->contents.len = 0;
+ }
+ return DynamicStrings_ConCat (a, b);
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ Dup - duplicate a String, s, returning the copy of s.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_Dup (DynamicStrings_String s)
+{
+ if (PoisonOn)
+ {
+ s = CheckPoisoned (s);
+ }
+ s = DynamicStrings_Assign (DynamicStrings_InitString ((const char *) "", 0), s);
+ if (TraceOn)
+ {
+ s = AssignDebug (s, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 1173, (const char *) "Dup", 3);
+ }
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ Add - returns a new String which contains the contents of a and b.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_Add (DynamicStrings_String a, DynamicStrings_String b)
+{
+ if (PoisonOn)
+ {
+ a = CheckPoisoned (a);
+ b = CheckPoisoned (b);
+ }
+ a = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_InitString ((const char *) "", 0), a), b);
+ if (TraceOn)
+ {
+ a = AssignDebug (a, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 1193, (const char *) "Add", 3);
+ }
+ return a;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ Equal - returns TRUE if String, a, and, b, are equal.
+*/
+
+extern "C" unsigned int DynamicStrings_Equal (DynamicStrings_String a, DynamicStrings_String b)
+{
+ unsigned int i;
+
+ if (PoisonOn)
+ {
+ a = CheckPoisoned (a);
+ b = CheckPoisoned (b);
+ }
+ if ((DynamicStrings_Length (a)) == (DynamicStrings_Length (b)))
+ {
+ while ((a != NULL) && (b != NULL))
+ {
+ i = 0;
+ Assertion_Assert (a->contents.len == b->contents.len);
+ while (i < a->contents.len)
+ {
+ if (a->contents.buf.array[i] != a->contents.buf.array[i])
+ {
+ M2RTS_HALT (-1);
+ __builtin_unreachable ();
+ }
+ if (b->contents.buf.array[i] != b->contents.buf.array[i])
+ {
+ M2RTS_HALT (-1);
+ __builtin_unreachable ();
+ }
+ if (a->contents.buf.array[i] != b->contents.buf.array[i])
+ {
+ return FALSE;
+ }
+ i += 1;
+ }
+ a = a->contents.next;
+ b = b->contents.next;
+ }
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ EqualCharStar - returns TRUE if contents of String, s, is the same as the
+ string, a.
+*/
+
+extern "C" unsigned int DynamicStrings_EqualCharStar (DynamicStrings_String s, void * a)
+{
+ DynamicStrings_String t;
+
+ if (PoisonOn)
+ {
+ s = CheckPoisoned (s);
+ }
+ t = DynamicStrings_InitStringCharStar (a);
+ if (TraceOn)
+ {
+ t = AssignDebug (t, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 1258, (const char *) "EqualCharStar", 13);
+ }
+ t = AddToGarbage (t, s);
+ if (DynamicStrings_Equal (t, s))
+ {
+ t = DynamicStrings_KillString (t);
+ return TRUE;
+ }
+ else
+ {
+ t = DynamicStrings_KillString (t);
+ return FALSE;
+ }
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ EqualArray - returns TRUE if contents of String, s, is the same as the
+ string, a.
+*/
+
+extern "C" unsigned int DynamicStrings_EqualArray (DynamicStrings_String s, const char *a_, unsigned int _a_high)
+{
+ DynamicStrings_String t;
+ char a[_a_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+
+ if (PoisonOn)
+ {
+ s = CheckPoisoned (s);
+ }
+ t = DynamicStrings_InitString ((const char *) a, _a_high);
+ if (TraceOn)
+ {
+ t = AssignDebug (t, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 1288, (const char *) "EqualArray", 10);
+ }
+ t = AddToGarbage (t, s);
+ if (DynamicStrings_Equal (t, s))
+ {
+ t = DynamicStrings_KillString (t);
+ return TRUE;
+ }
+ else
+ {
+ t = DynamicStrings_KillString (t);
+ return FALSE;
+ }
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ Mult - returns a new string which is n concatenations of String, s.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_Mult (DynamicStrings_String s, unsigned int n)
+{
+ if (PoisonOn)
+ {
+ s = CheckPoisoned (s);
+ }
+ if (n <= 0)
+ {
+ s = AddToGarbage (DynamicStrings_InitString ((const char *) "", 0), s);
+ }
+ else
+ {
+ s = DynamicStrings_ConCat (DynamicStrings_Mult (s, n-1), s);
+ }
+ if (TraceOn)
+ {
+ s = AssignDebug (s, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 1320, (const char *) "Mult", 4);
+ }
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ Slice - returns a new string which contains the elements
+ low..high-1
+
+ strings start at element 0
+ Slice(s, 0, 2) will return elements 0, 1 but not 2
+ Slice(s, 1, 3) will return elements 1, 2 but not 3
+ Slice(s, 2, 0) will return elements 2..max
+ Slice(s, 3, -1) will return elements 3..max-1
+ Slice(s, 4, -2) will return elements 4..max-2
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s, int low, int high)
+{
+ DynamicStrings_String d;
+ DynamicStrings_String t;
+ int start;
+ int end;
+ int o;
+
+ if (PoisonOn)
+ {
+ s = CheckPoisoned (s);
+ }
+ if (low < 0)
+ {
+ low = ((int ) (DynamicStrings_Length (s)))+low;
+ }
+ if (high <= 0)
+ {
+ high = ((int ) (DynamicStrings_Length (s)))+high;
+ }
+ else
+ {
+ /* make sure high is <= Length (s) */
+ high = Min (DynamicStrings_Length (s), static_cast<unsigned int> (high));
+ }
+ d = DynamicStrings_InitString ((const char *) "", 0);
+ d = AddToGarbage (d, s);
+ o = 0;
+ t = d;
+ while (s != NULL)
+ {
+ if (low < (o+((int ) (s->contents.len))))
+ {
+ if (o > high)
+ {
+ s = NULL;
+ }
+ else
+ {
+ /* found sliceable unit */
+ if (low < o)
+ {
+ start = 0;
+ }
+ else
+ {
+ start = low-o;
+ }
+ end = Max (Min (MaxBuf, static_cast<unsigned int> (high-o)), 0);
+ while (t->contents.len == MaxBuf)
+ {
+ if (t->contents.next == NULL)
+ {
+ Storage_ALLOCATE ((void **) &t->contents.next, sizeof (DynamicStrings_stringRecord));
+ t->contents.next->head = NULL;
+ t->contents.next->contents.len = 0;
+ AddDebugInfo (t->contents.next);
+ if (TraceOn)
+ {
+ t->contents.next = AssignDebug (t->contents.next, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 1388, (const char *) "Slice", 5);
+ }
+ }
+ t = t->contents.next;
+ }
+ ConcatContentsAddress (&t->contents, &s->contents.buf.array[start], static_cast<unsigned int> (end-start));
+ o += s->contents.len;
+ s = s->contents.next;
+ }
+ }
+ else
+ {
+ o += s->contents.len;
+ s = s->contents.next;
+ }
+ }
+ if (TraceOn)
+ {
+ d = AssignDebug (d, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 1405, (const char *) "Slice", 5);
+ }
+ return d;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ Index - returns the indice of the first occurance of, ch, in
+ String, s. -1 is returned if, ch, does not exist.
+ The search starts at position, o.
+*/
+
+extern "C" int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned int o)
+{
+ unsigned int i;
+ unsigned int k;
+
+ if (PoisonOn)
+ {
+ s = CheckPoisoned (s);
+ }
+ k = 0;
+ while (s != NULL)
+ {
+ if ((k+s->contents.len) < o)
+ {
+ k += s->contents.len;
+ }
+ else
+ {
+ i = o-k;
+ while (i < s->contents.len)
+ {
+ if (s->contents.buf.array[i] == ch)
+ {
+ return k+i;
+ }
+ i += 1;
+ }
+ k += i;
+ o = k;
+ }
+ s = s->contents.next;
+ }
+ return -1;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ RIndex - returns the indice of the last occurance of, ch,
+ in String, s. The search starts at position, o.
+ -1 is returned if, ch, is not found.
+*/
+
+extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned int o)
+{
+ unsigned int i;
+ unsigned int k;
+ int j;
+
+ if (PoisonOn)
+ {
+ s = CheckPoisoned (s);
+ }
+ j = -1;
+ k = 0;
+ while (s != NULL)
+ {
+ if ((k+s->contents.len) < o)
+ {
+ k += s->contents.len;
+ }
+ else
+ {
+ if (o < k)
+ {
+ i = 0;
+ }
+ else
+ {
+ i = o-k;
+ }
+ while (i < s->contents.len)
+ {
+ if (s->contents.buf.array[i] == ch)
+ {
+ j = k;
+ }
+ k += 1;
+ i += 1;
+ }
+ }
+ s = s->contents.next;
+ }
+ return j;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ RemoveComment - assuming that, comment, is a comment delimiter
+ which indicates anything to its right is a comment
+ then strip off the comment and also any white space
+ on the remaining right hand side.
+ It leaves any white space on the left hand side alone.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_RemoveComment (DynamicStrings_String s, char comment)
+{
+ int i;
+
+ i = DynamicStrings_Index (s, comment, 0);
+ if (i == 0)
+ {
+ s = DynamicStrings_InitString ((const char *) "", 0);
+ }
+ else if (i > 0)
+ {
+ /* avoid dangling else. */
+ s = DynamicStrings_RemoveWhitePostfix (DynamicStrings_Slice (DynamicStrings_Mark (s), 0, i));
+ }
+ if (TraceOn)
+ {
+ s = AssignDebug (s, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 1517, (const char *) "RemoveComment", 13);
+ }
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ RemoveWhitePrefix - removes any leading white space from String, s.
+ A new string is returned.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_RemoveWhitePrefix (DynamicStrings_String s)
+{
+ unsigned int i;
+
+ i = 0;
+ while (IsWhite (DynamicStrings_char (s, static_cast<int> (i))))
+ {
+ i += 1;
+ }
+ s = DynamicStrings_Slice (s, (int ) (i), 0);
+ if (TraceOn)
+ {
+ s = AssignDebug (s, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 1629, (const char *) "RemoveWhitePrefix", 17);
+ }
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ RemoveWhitePostfix - removes any leading white space from String, s.
+ A new string is returned.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_RemoveWhitePostfix (DynamicStrings_String s)
+{
+ int i;
+
+ i = ((int ) (DynamicStrings_Length (s)))-1;
+ while ((i >= 0) && (IsWhite (DynamicStrings_char (s, i))))
+ {
+ i -= 1;
+ }
+ s = DynamicStrings_Slice (s, 0, i+1);
+ if (TraceOn)
+ {
+ s = AssignDebug (s, (const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 1651, (const char *) "RemoveWhitePostfix", 18);
+ }
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ ToUpper - returns string, s, after it has had its lower case characters
+ replaced by upper case characters.
+ The string, s, is not duplicated.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_ToUpper (DynamicStrings_String s)
+{
+ char ch;
+ unsigned int i;
+ DynamicStrings_String t;
+
+ if (s != NULL)
+ {
+ MarkInvalid (s);
+ t = s;
+ while (t != NULL)
+ {
+ i = 0;
+ while (i < t->contents.len)
+ {
+ ch = t->contents.buf.array[i];
+ if ((ch >= 'a') && (ch <= 'z'))
+ {
+ t->contents.buf.array[i] = ((char) (( ((unsigned int) (ch))- ((unsigned int) ('a')))+ ((unsigned int) ('A'))));
+ }
+ i += 1;
+ }
+ t = t->contents.next;
+ }
+ }
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ ToLower - returns string, s, after it has had its upper case characters
+ replaced by lower case characters.
+ The string, s, is not duplicated.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_ToLower (DynamicStrings_String s)
+{
+ char ch;
+ unsigned int i;
+ DynamicStrings_String t;
+
+ if (s != NULL)
+ {
+ MarkInvalid (s);
+ t = s;
+ while (t != NULL)
+ {
+ i = 0;
+ while (i < t->contents.len)
+ {
+ ch = t->contents.buf.array[i];
+ if ((ch >= 'A') && (ch <= 'Z'))
+ {
+ t->contents.buf.array[i] = ((char) (( ((unsigned int) (ch))- ((unsigned int) ('A')))+ ((unsigned int) ('a'))));
+ }
+ i += 1;
+ }
+ t = t->contents.next;
+ }
+ }
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ CopyOut - copies string, s, to a.
+*/
+
+extern "C" void DynamicStrings_CopyOut (char *a, unsigned int _a_high, DynamicStrings_String s)
+{
+ unsigned int i;
+ unsigned int l;
+
+ l = Min (_a_high+1, DynamicStrings_Length (s));
+ i = 0;
+ while (i < l)
+ {
+ a[i] = DynamicStrings_char (s, static_cast<int> (i));
+ i += 1;
+ }
+ if (i <= _a_high)
+ {
+ a[i] = ASCII_nul;
+ }
+}
+
+
+/*
+ char - returns the character, ch, at position, i, in String, s.
+*/
+
+extern "C" char DynamicStrings_char (DynamicStrings_String s, int i)
+{
+ unsigned int c;
+
+ if (PoisonOn)
+ {
+ s = CheckPoisoned (s);
+ }
+ if (i < 0)
+ {
+ c = (unsigned int ) (((int ) (DynamicStrings_Length (s)))+i);
+ }
+ else
+ {
+ c = i;
+ }
+ while ((s != NULL) && (c >= s->contents.len))
+ {
+ c -= s->contents.len;
+ s = s->contents.next;
+ }
+ if ((s == NULL) || (c >= s->contents.len))
+ {
+ return ASCII_nul;
+ }
+ else
+ {
+ return s->contents.buf.array[c];
+ }
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ string - returns the C style char * of String, s.
+*/
+
+extern "C" void * DynamicStrings_string (DynamicStrings_String s)
+{
+ typedef char *string__T2;
+
+ DynamicStrings_String a;
+ unsigned int l;
+ unsigned int i;
+ string__T2 p;
+
+ if (PoisonOn)
+ {
+ s = CheckPoisoned (s);
+ }
+ if (s == NULL)
+ {
+ return NULL;
+ }
+ else
+ {
+ if (! s->head->charStarValid)
+ {
+ l = DynamicStrings_Length (s);
+ if (! (s->head->charStarUsed && (s->head->charStarSize > l)))
+ {
+ DeallocateCharStar (s);
+ Storage_ALLOCATE (&s->head->charStar, l+1);
+ s->head->charStarSize = l+1;
+ s->head->charStarUsed = TRUE;
+ }
+ p = static_cast<string__T2> (s->head->charStar);
+ a = s;
+ while (a != NULL)
+ {
+ i = 0;
+ while (i < a->contents.len)
+ {
+ (*p) = a->contents.buf.array[i];
+ i += 1;
+ p += 1;
+ }
+ a = a->contents.next;
+ }
+ (*p) = ASCII_nul;
+ s->head->charStarValid = TRUE;
+ }
+ return s->head->charStar;
+ }
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ InitStringDB - the debug version of InitString.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_InitStringDB (const char *a_, unsigned int _a_high, const char *file_, unsigned int _file_high, unsigned int line)
+{
+ char a[_a_high+1];
+ char file[_file_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+ memcpy (file, file_, _file_high+1);
+
+ return AssignDebug (DynamicStrings_InitString ((const char *) a, _a_high), (const char *) file, _file_high, line, (const char *) "InitString", 10);
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ InitStringCharStarDB - the debug version of InitStringCharStar.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_InitStringCharStarDB (void * a, const char *file_, unsigned int _file_high, unsigned int line)
+{
+ char file[_file_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (file, file_, _file_high+1);
+
+ return AssignDebug (DynamicStrings_InitStringCharStar (a), (const char *) file, _file_high, line, (const char *) "InitStringCharStar", 18);
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ InitStringCharDB - the debug version of InitStringChar.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_InitStringCharDB (char ch, const char *file_, unsigned int _file_high, unsigned int line)
+{
+ char file[_file_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (file, file_, _file_high+1);
+
+ return AssignDebug (DynamicStrings_InitStringChar (ch), (const char *) file, _file_high, line, (const char *) "InitStringChar", 14);
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ MultDB - the debug version of MultDB.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_MultDB (DynamicStrings_String s, unsigned int n, const char *file_, unsigned int _file_high, unsigned int line)
+{
+ char file[_file_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (file, file_, _file_high+1);
+
+ return AssignDebug (DynamicStrings_Mult (s, n), (const char *) file, _file_high, line, (const char *) "Mult", 4);
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ DupDB - the debug version of Dup.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_DupDB (DynamicStrings_String s, const char *file_, unsigned int _file_high, unsigned int line)
+{
+ char file[_file_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (file, file_, _file_high+1);
+
+ return AssignDebug (DynamicStrings_Dup (s), (const char *) file, _file_high, line, (const char *) "Dup", 3);
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ SliceDB - debug version of Slice.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_SliceDB (DynamicStrings_String s, int low, int high, const char *file_, unsigned int _file_high, unsigned int line)
+{
+ char file[_file_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (file, file_, _file_high+1);
+
+ DSdbEnter ();
+ s = AssignDebug (DynamicStrings_Slice (s, low, high), (const char *) file, _file_high, line, (const char *) "Slice", 5);
+ DSdbExit (s);
+ return s;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+
+/*
+ PushAllocation - pushes the current allocation/deallocation lists.
+*/
+
+extern "C" void DynamicStrings_PushAllocation (void)
+{
+ DynamicStrings_frame f;
+
+ if (CheckOn)
+ {
+ Init ();
+ Storage_ALLOCATE ((void **) &f, sizeof (DynamicStrings_frameRec));
+ f->next = frameHead;
+ f->alloc = NULL;
+ f->dealloc = NULL;
+ frameHead = f;
+ }
+}
+
+
+/*
+ PopAllocation - test to see that all strings are deallocated since
+ the last push. Then it pops to the previous
+ allocation/deallocation lists.
+
+ If halt is true then the application terminates
+ with an exit code of 1.
+*/
+
+extern "C" void DynamicStrings_PopAllocation (unsigned int halt)
+{
+ if (CheckOn)
+ {
+ if ((DynamicStrings_PopAllocationExemption (halt, NULL)) == NULL)
+ {} /* empty. */
+ }
+}
+
+
+/*
+ PopAllocationExemption - test to see that all strings are deallocated, except
+ string, e, since the last push.
+ Then it pops to the previous allocation/deallocation
+ lists.
+
+ If halt is true then the application terminates
+ with an exit code of 1.
+*/
+
+extern "C" DynamicStrings_String DynamicStrings_PopAllocationExemption (unsigned int halt, DynamicStrings_String e)
+{
+ DynamicStrings_String s;
+ DynamicStrings_frame f;
+ unsigned int b;
+
+ Init ();
+ if (CheckOn)
+ {
+ /* avoid gcc warning by using compound statement even if not strictly necessary. */
+ if (frameHead == NULL)
+ {
+ stop ();
+ /* writeString ("mismatched number of PopAllocation's compared to PushAllocation's") */
+ M2RTS_Halt ((const char *) "../../gcc-git-devel-modula2/gcc/m2/gm2-libs/DynamicStrings.mod", 62, 176, (const char *) "PopAllocationExemption", 22, (const char *) "mismatched number of PopAllocation's compared to PushAllocation's", 65);
+ }
+ else
+ {
+ if (frameHead->alloc != NULL)
+ {
+ b = FALSE;
+ s = frameHead->alloc;
+ while (s != NULL)
+ {
+ if (! (((e == s) || (IsOnGarbage (e, s))) || (IsOnGarbage (s, e))))
+ {
+ if (! b)
+ {
+ writeString ((const char *) "the following strings have been lost", 36);
+ writeLn ();
+ b = TRUE;
+ }
+ DumpStringInfo (s, 0);
+ }
+ s = s->debug.next;
+ }
+ if (b && halt)
+ {
+ libc_exit (1);
+ }
+ }
+ frameHead = frameHead->next;
+ }
+ }
+ return e;
+ /* static analysis guarentees a RETURN statement will be used before here. */
+ __builtin_unreachable ();
+}
+
+extern "C" void _M2_DynamicStrings_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+{
+ Initialized = FALSE;
+ Init ();
+}
+
+extern "C" void _M2_DynamicStrings_finish (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+{
+}