2018-07-30  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/gm2spec.c:  (fe_generate_option) do not duplicate the old
          argument.  free up a string after use.  (build_include_path)
          start the new string with a strcpy not strcat!
          (insert_option) create a new vector with an extra entry.
          (no_link) return a string which can be free'd.
	  (add_exec_name) return a string which can be free'd.

2018-07-18  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/gm2spec.c: reformatted according to GNU coding standards.

2018-07-17  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/gm2-compiler/ObjectFiles.mod:  import ALLOCATE
          and DEALLOCATE from Storage.  Collect return results
          from close and KillIndex.
	* gm2/gm2spec.c:  reformatted and tidied up code.
	* gm2/gm2-libs/GetOpt.mod:  remove declaration of PtrToInteger.
	* gm2/gm2-libs/GetOpt.mod:  corrected record/pointer reference.

2018-07-16  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/bnf/gm2l.bnf:  reformatted to gnu standards.
	* gm2/el/gm2-mode.el:  minor formatting change.
	* gm2/gm2-libs/DynamicStrings.mod:  reformatted to gnu standards.
	* gm2/gm2-compiler/ObjectFiles.def:  (New file).

2018-07-14  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/Make-lang.in:  remove the target configure scripts from
	  gm2/gm2-libs.
	* gm2/configure:  rebuilt.
	* gm2/examples/callingC/Makefile.in:  use multiple -I flags.
	* gm2/examples/hello/Makefile.in:  use multiple -I flags.
	* gm2/gm2-compiler/gm2lcc.mod:  reformatted.  Archive
	  all object files, all Modula-2 objects and check for duplication.
	* gm2/gm2-libs-ch/wrapc.c:  remove unconfigured test for fileinode.
	* gm2/gm2-libs/config-host:  rebuilt.
	* gm2/gm2-libs/config-target:  removed.
	* gm2/gm2-libs/gm2-libs-host.h.in:  rebuilt.
	* gm2/gm2-libs/gm2-libs-target.h.in:  removed.
	* gm2/gm2spec.c:  reformatted.  (add_env_option)  New function.
	  (lang_specific_driver)  call add_env_option.
	* gm2/lang-specs.h:  (lang_register_spec_functions) register
	  no_objects.
	* gm2/patches/gcc/trunc/01-patches:  rebuilt.
	* gm2/patches/gcc/trunc/02-patches:  rebuilt.
	* gm2/patches/gcc/trunc/03-patches:  rebuilt.
	* gm2/patches/gcc/trunc/04-patches:  rebuilt.
	* gm2/patches/gcc/trunc/05-patches:  rebuilt.
	* gm2/patches/gcc/trunc/06-patches:  rebuilt.
	* gm2/patches/gcc/trunc/07-patches:  rebuilt.
	* gm2/patches/gcc/trunc/08-patches:  rebuilt.
	* gm2/patches/gcc/trunc/09-patches:  rebuilt.
	* gm2/patches/gcc/trunc/10-patches:  rebuilt.
	* testsuite/gm2/pim/run/pass/testaddr2.mod:  reformatted.
	* gm2/gm2spec.c:  removed unused variable and reformatted.
	* gm2/tools-src/makeversion:  remove reference to config-target.in.

2018-07-10  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/gm2-compiler/ObjectFiles.def:  New file.
	* gm2/gm2-compiler/ObjectFiles.mod:  New file.
	* gm2/Make-lang.in:  added ObjectFiles to be built and linked
	into the compiler and tools.
	* gm2/gm2-compiler/gm2lcc.mod:  use ObjectFiles to remember each
	  object file so duplicates are not accidentally linked both in
	the Modula-2 link and command line list of objects.  Much code
	  was tidied up.
	* gm2/gm2-libs-ch/wrapc.c:  (fileinode) New function.
	* gm2/gm2-libs/libc.def:  corrected dates.
	* gm2/gm2-libs/wrapc.def:  (fileinode) New procedure function.
	* libgm2/libpim/wrapc.c:  (fileinode) New function.  Tidied up
	  formatting.

2018-07-07  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/bnf/gm2l.bnf:  import Verbose and use.  (RegisterImport)
          reformatted.  (ScanSources) display the module name if Verbose.
          (ScanArgs) handle long options and also concatenated arguments.
	  (-I, --verbose, --M2RTS).
	* gm2/gm2-compiler/M2DriverOptions.mod:  (CppArgument)  New procedure
	  function.  (ScanCppArgs) reformatted and also call CppArgument.
	* gm2/gm2-compiler/M2Options.mod:  updated dates.
	* gm2/gm2-compiler/M2Preprocess.mod:  reformatted and changed some of the
	  Verbose output.
	* gm2/gm2-libs-ch/getopt.c:  implement long options.
	* gm2/gm2-libs/GetOpt.def:  provide access to the long options in getopt.
	* gm2/gm2-libs/GetOpt.mod:  implement long option procedures necessary for getopt.
	* gm2/gm2-libs/Storage.def:  updated dates.
	* gm2/gm2-libs/getopt.def:  provide access to the long options in getopt.
	* gm2/gm2.texi:  corrected docuentation surrounding
	* gm2/gm2spec.c:  removed GM2IPATH and GM2OPATH temporarily and changed
          all include and object paths to avoid using the ":" separator.
          (which does not exist for -I).  In turn this forces a reimplementation
	  of the GM2IPATH and GM2OPATH.
	* gm2/lang-specs.h:  changed all references to gm2l to use the GM2L macro.
          Fixed many preprocessor invocation problems which occur when linking
	  an application which uses the preprocessor.

2018-07-02  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/Make-lang.in:  changes to build stage2/gm2/gm2l
	* gm2/bnf/gm2l.bnf:  remove FORWARD references.
	* gm2/gm2-compiler/M2GenGCC.mod:  (GetAddressOfUnbounded)
          reformatted.  (BuildHighFromStaticArray) bug fixes
          and reformatted.
	* gm2/gm2-libs/GetOpt.def:  introduce long options.
	* gm2/iso/run/pass/constructor2.mod:  reformatted.

2018-06-27  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/gm2-compiler/M2GenGCC.mod:  (GetHighFromUnbounded)
          check to see if the unbounded array has static array
          data type and follow the dimension into the static array
          to obtain the correct HIGH value.
          (BuildHighFromStaticArray)  New procedure function.
	* gm2/gm2-compiler/M2Range.mod:  add missing case clause.

2018-06-23  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/el/g-mode.el: bug fixes to the m2-tag feature.
	* gm2/el/g-mode.el: allow . before a type, keyword,
	  function and const.

2018-06-22  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/el/g-mode.el: generate types and builtin functions
	  dependant upon the dialect chosen.

2018-06-21  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/el/g-mode.el: fixed m2-tag (find declaration
          understands the path and also works in algol keyword mode.
	* gm2/el/g-mode.el: fixed visual parenthesis balancing.
	* gm2/el/g-mode.el: removed some debugging statements.

2018-06-20  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/el/g-mode.el:  fixed traditional mode.  Both algol
	  mode and traditional are now usable and user selectable.

2018-06-13  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/el/g-mode.el:  added ability to turn on/off
          lowercase algol style keyword transformation.
          Fixed compile-command.
	* gm2/el/gm2-mode.el:  renamed from g-mode.el.
	  Changed internal variables from g-mode- to m2-auto-.

2018-06-11  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/el/g-mode.el:  added defcustom declarations
          and fixed some regexp bugs.  Applied some defcustom
          implementation features.
	* gm2/el/g-mode.el:  fixed electric END, ELSE and THEN.
          Added more defcustoms.
	* gm2/el/g-mode.el:  added many more defcustoms.  Also
          tidied up code and also tightened up types and introduced
          radio buttons for language choice.  Use inbuilt booleans
          for binary choices.  Fixed key binding for DEL and
	  Backspace.

2018-06-08  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/el/g-mode.el:  interim checkin, keyword editing
          complete (minus delete key).

2018-06-07  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/el/g-mode.el:  interim checkin.
	* gm2/el/g-mode.el:  another interim checkin in
	  the development of lowercase keywords.

2018-05-24  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/gm2-gcc/m2expr.c:  (BuildNotEqualToZero)
          new function.  (checkWholeNegateOverflow)
          re-implemented and in the process fixed bug
	  and the test
          testsuite/gm2/switches/check-all/run/fail/intrange5.mod
	  passes.
          (m2expr_Build4LogicalAnd)  New function.
	* gm2/gm2-gcc/m2expr.c:  renamed BuildLogicalAndIf
          to BuildTruthAndIf and renamed BuildLogicalOrIf
	  to BuildTruthOrIf.

2018-05-23  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* implement range checks on whole number multiply.
	* gm2/gm2-compiler/M2GenGCC.mod:  import BuildMultCheck.
          Call CodeMultCheck in quadruple case statement.
          (CodeMultChecked)  New procedure.  (CodeMultCheck)
          New procedure.
	* gm2/gm2-gcc/m2expr.c:  (checkWholeNegateOverflow)
          interm checkin.  (checkWholeSubOverflow) corrected
          comment.  (m2expr_Build3LogicalAnd)  New function.
          (m2expr_Build4LogicalOr)  New function.
          (checkWholeMultOverflow)  New function.
          (checkWholeOverflow)  New function.
          (m2expr_BuildMultCheck)  New function.
	* gm2/gm2-gcc/m2expr.def:  BuildMultCheck exported.
	* gm2/gm2-gcc/m2expr.h:  BuildMultCheck defined.
	* gm2/gm2-gcc/m2expr.c:  added missing semicolon.

2018-04-16  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/Make-lang.in:  changed the plugin directory to
          plugin rather than gm2/plugin.  Corrected .so typeos.
	* gm2/gm2.texi:  Semantic checking (New section).
	* testsuite/gm2/iso/analysis/fail/gm2.exp:  New file.

2018-04-14  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/Make-lang.in:  build plugin/m2rte.so and create
	  gm2/plugin directory.
	* gm2/gm2-compiler/CLexBuf.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2ALU.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2AsmUtil.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2BasicBlock.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2BasicBlock.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2Batch.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2Const.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2Const.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2Depth.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2Lex.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2LexBuf.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2LexBuf.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2MetaError.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2MetaError.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2Optimize.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/M2Swig.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/NameKey.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/PCSymBuild.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/SymbolKey.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/SymbolTable.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/gm2lcc.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-compiler/gm2lgen.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs-ch/libc.c:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs-coroutines/Debug.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs-coroutines/Debug.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs-min/libc.c:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/Args.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/Args.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/CmdArgs.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/Debug.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/DynamicStrings.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/DynamicStrings.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/FIO.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/NumberIO.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/PushBackInput.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/RTExceptions.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/Scan.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/StrIO.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/StrLib.mod:  removed FORWARD prototype
	  definitions.
	* gm2/gm2-libs/StringConvert.mod:  removed FORWARD prototype
	  definitions.
	* gm2/plugins/m2rte.c:  renamed to gm2/plugin/m2rte.c.
	* gm2/ulm-lib-gm2/std/RTExceptions.mod:  removed FORWARD prototype
	  definitions.

2018-04-10  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/Make-lang.in:  build m2rte plugin, install m2rte plugin.
	* gm2/gm2-compiler/M2Base.def:  define new exception ExceptionReturn.
	* gm2/gm2-compiler/M2Base.mod:  implement new exception ExceptionReturn.
	* gm2/gm2-compiler/M2Quads.mod:  new call to InitReturnRangeCheck.
	* gm2/gm2-compiler/M2Range.def:  define InitReturnRangeCheck.
	* gm2/gm2-compiler/M2Range.mod:  (InitReturnRangeCheck),
	  (FoldReturn), (CodeReturn) New procedures.
	* gm2/gm2-lang.c:  detect -fno-m2-plugin option.
	* gm2/gm2-libs-iso/M2RTS.def:  ReturnException defined.
	* gm2/gm2-libs-iso/M2RTS.mod:  ReturnException implemented.
	* gm2/gm2-libs/M2RTS.def:  ReturnException defined.
	* gm2/gm2-libs/M2RTS.mod:  ReturnException implemented.
	* gm2/gm2spec.c:  detect -fno-m2-plugin and unset boolean if
          present.  Later insert the -fplugin=m2rte switch if plugins are true.
	* gm2/lang-options.h:  allow -fm2-plugin and -fno-m2-plugin.
	* gm2/lang-specs.h:  update dates.
	* gm2/lang.opt:  define -fm2-plugin and -fno-m2-plugin.
	* gm2/m2pp.c:  update dates.
	* gm2/tools-src/makeSystem:  use -fno-m2-plugin when creating system.
	* gm2/ulm-lib-gm2/std/M2RTS.mod:  ReturnException implemented.
	* plugins/m2rte.c:  New file.

2018-03-28  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/bnf/m2-2.bnf:  updated dates and trimmed end of
	  line spaces.
	* gm2/bnf/m2-c.bnf:  updated dates and trimmed end of
	  line spaces.
	* gm2/gm2-compiler/M2Comp.mod:  removed p2c forward
	  declarations.
	* gm2/gm2-compiler/M2Quads.mod:  (BuildRealFuncProcCall)
          corrected comment title.  Call SkipConst to skip over
          a constant assigned to a procedure.  Fixes a bug reported
          by Michael Riedl <udo-michael.riedl@t-online.de>.
	* gm2/gm2-compiler/P2SymBuild.mod:  remove p2c
	  forward declarations.
	* testsuite/gm2/iso/run/pass/constprocedure.mod:
          New regression test to stress the bug reported (above).
	* testsuite/gm2/iso/fail/constprocedure.mod:  New
          regression test to test standard functions are not
          allowed to be referenced in a const expression.
	  (But they can be called).

2018-03-27  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/el/g-mode.el:  corrected dates and changed name
          to help debugging.
	* gm2/gm2-compiler/Indexing.mod:  removed p2c related
	  comment.
	* gm2/gm2-compiler/M2Error.mod:  removed intemediate
          record type as we are no longer bootstrapping using
          p2c.
	* gm2/gm2-compiler/M2GCCDeclare.mod:  removed intemediate
          record types as we are no longer bootstrapping using
          p2c.
	* gm2/gm2-compiler/M2Range.mod:  removed intemediate
          record type as we are no longer bootstrapping using
          p2c.
	* gm2/gm2-compiler/ppg.mod:  removed intemediate
          record types as we are no longer bootstrapping using
          p2c.

2018-03-26  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/gm2-lang.c:  (gm2_langhook_type_for_mode)  rewritten
          (borrowed code from go-lang.c).
	* gm2/gm2-compiler/M2Quads.mod:  (BuildAdrFunction)
          handle address of unbounded array and check the dimension
	  access.

2018-03-14  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/gm2-compiler/SymbolTable.mod:  (PutUnbounded)
          ensure that all dimensions prior to the requested dimension
	  has an entry in the array.  (NulSym is added).
	* gm2/gm2-compiler/M2GCCDeclare.mod:  (WalkFamilyOfUnbounded)
          check that unbounded is not NulSym before calling unboundedp.

	* gm2/gm2-compiler/M2Quads.mod:  (UnboundedVarLinkToArray)
          and (UnboundedNonVarLinkToArray) ensure that all
          parameters to BuildAdrFunction propagate the array
          and dimension operand stack.
          Fixes bugs exposed in
	  testsuite/gm2/iso/run/pass/adrunbounded3.mod

2018-02-19  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/gm2-compiler/M2Quads.mod:  (AssignHighField)
          check for ArraySym and use if actual parameter
          has different number of dimensions to formal
          parameter array.
	* gm2/gm2-compiler/M2Quads.mod:  (BuildConstHighFromSym)
          only access the single dimension when building high
          as the array will be referencing the desired dimension.
	  A temporary type will have been created.

2018-02-15  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/gm2-compiler/M2GenGCC.mod:  check and use lvalue op3
	  which points to the data for the unbounded quadruple.

2018-02-08  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/gm2-compiler/M2Quads.mod:  check open array actual
          parameter which is indexed and check the dimension against
	  formal parameters.

2018-02-07  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* gm2/Make-lang.in:  added LDFLAGS to the link of mc.

2018-01-28  Gaius Mulley  <gaius@gnu.org>

	* gm2/bnf/mc-5.bnf:  regenerated.
	* gm2/mc-boot/GCmdArgs.c:  regenerated.
	* gm2/mc-boot/GFIO.c:  regenerated.
	* gm2/mc-boot/GStrIO.c:  regenerated.
	* gm2/mc-boot/GStringConvert.c:  regenerated.
	* gm2/mc-boot/Gdecl.c:  regenerated.
	* gm2/mc-boot/Gdecl.h:  regenerated.
	* gm2/mc-boot/GmcComp.c:  regenerated.
	* gm2/mc-boot/GmcLexBuf.c:  regenerated.
	* gm2/mc-boot/Gmcp1.c:  regenerated.
	* gm2/mc-boot/Gmcp2.c:  regenerated.
	* gm2/mc-boot/Gmcp3.c:  regenerated.
	* gm2/mc-boot/Gmcp4.c:  regenerated.
	* gm2/mc-boot/Gmcp5.c:  regenerated.
	* gm2/mc/decl.def:  (addElseComments), (addIfEndComments),
          (addWhileDoComment), (addWhileEndComment), (addRepeatComment),
	  (addUntilComment)  defined and exported.
	* gm2/mc/decl.mod:  (commentPair)  New record.
          Used in funccallT, returnT, whileT, repeatT, ifT, elsifT,
          assignmentT.  (doAfterCommentC)  New procedure.
          (doReturnC)  Use (doAfterCommentC).
          (doAssignmentC) use (doAfterCommentC).  (doIfC)
          use (doAfterCommentC).  (doRepeatC) use (doAfterCommentC).
          (doWhileC) use (doAfterCommentC).  (doFuncCallC) use
          (doAfterCommentC).  (addGenericBody) rewritten.
          (addIfComments) rewritten.  (addElseComments)  New
          procedure.  (addIfEndComments)  New procedure.
          (addWhileDoComment) New procedure.  (addWhileEndComment)
          New procedure.  (initPair)  New procedure.
          (addRepeatComment)  New procedure.
	  (addUntilComment)  New procedure.
	* gm2/mc/mcLexBuf.mod:  fixed an infinite loop bug hunting
	  for the next token on a buffer boundary case.

2018-01-26  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  added extra commented definition for
	bootstrapping under trunc.
	* gm2/bnf/mc-1.bnf:  changed comment interface.
	* gm2/bnf/mc-2.bnf:  removed unnecessary import.
	* gm2/bnf/mc-5.bnf:  rewritten the comment interface for
	  after and body comments.
	* gm2/mc-boot/GCmdArgs.c:  rebuilt.
	* gm2/mc-boot/GDebug.c:  rebuilt.
	* gm2/mc-boot/GDynamicStrings.c:  rebuilt.
	* gm2/mc-boot/GFIO.c:  rebuilt.
	* gm2/mc-boot/GFormatStrings.c:  rebuilt.
	* gm2/mc-boot/GFpuIO.c:  rebuilt.
	* gm2/mc-boot/GIO.c:  rebuilt.
	* gm2/mc-boot/GIndexing.c:  rebuilt.
	* gm2/mc-boot/GM2EXCEPTION.c:  rebuilt.
	* gm2/mc-boot/GM2RTS.c:  rebuilt.
	* gm2/mc-boot/GM2RTS.h:  rebuilt.
	* gm2/mc-boot/GNumberIO.c:  rebuilt.
	* gm2/mc-boot/GRTExceptions.c:  rebuilt.
	* gm2/mc-boot/GRTint.c:  rebuilt.
	* gm2/mc-boot/GSFIO.c:  rebuilt.
	* gm2/mc-boot/GStorage.c:  rebuilt.
	* gm2/mc-boot/GStrIO.c:  rebuilt.
	* gm2/mc-boot/GStrLib.c:  rebuilt.
	* gm2/mc-boot/GStringConvert.c:  rebuilt.
	* gm2/mc-boot/GSysStorage.c:  rebuilt.
	* gm2/mc-boot/Gdecl.c:  rebuilt.
	* gm2/mc-boot/Gdecl.h:  rebuilt.
	* gm2/mc-boot/Gkeyc.c:  rebuilt.
	* gm2/mc-boot/Glibc.h:  rebuilt.
	* gm2/mc-boot/GmcComment.c:  rebuilt.
	* gm2/mc-boot/GmcComment.h:  rebuilt.
	* gm2/mc-boot/GmcComp.c:  rebuilt.
	* gm2/mc-boot/GmcComp.h:  rebuilt.
	* gm2/mc-boot/GmcError.c:  rebuilt.
	* gm2/mc-boot/GmcLexBuf.c:  rebuilt.
	* gm2/mc-boot/GmcLexBuf.h:  rebuilt.
	* gm2/mc-boot/GmcMetaError.c:  rebuilt.
	* gm2/mc-boot/GmcOptions.c:  rebuilt.
	* gm2/mc-boot/GmcPretty.c:  rebuilt.
	* gm2/mc-boot/GmcPrintf.c:  rebuilt.
	* gm2/mc-boot/GmcQuiet.c:  rebuilt.
	* gm2/mc-boot/GmcSearch.c:  rebuilt.
	* gm2/mc-boot/Gmcp1.c:  rebuilt.
	* gm2/mc-boot/Gmcp2.c:  rebuilt.
	* gm2/mc-boot/Gmcp3.c:  rebuilt.
	* gm2/mc-boot/Gmcp4.c:  rebuilt.
	* gm2/mc-boot/Gmcp5.c:  rebuilt.
	* gm2/mc-boot/GnameKey.c:  rebuilt.
	* gm2/mc-boot/GsymbolKey.c:  rebuilt.
	* gm2/mc-boot/Gvarargs.c:  rebuilt.
	* gm2/mc-boot/Gwrapc.h:  rebuilt.
	* gm2/mc/decl.def:  (addCommentBody)  New procedure.
          (addCommentAfter)  New procedure.  (addIfComments)
          New procedure.  (makeCommentS)  New procedure.
          (getCommentCharStar) New procedure function.
          (getContent) New procedure function.
	  (setProcedureComment) New procedure function.
          (getProcedureComment) New procedure function.
	  (getAfterStatementComment)  New procedure function.
          (getInbodyStatementComment)  New procedure function.
	  (isProcedureComment)  New procedure function.
          (isBodyComment)  New procedure function.
	  (isAfterComment)  New procedure function.
	* gm2/mc/decl.mod:  many alterations to allow per node
	  after and body comments.
	* gm2/mc/keyc.mod:  add free and malloc to the list of
	  names to avoid.
	* gm2/mc/mc.flex:  many alterations to allow per node
	  after and body comments.
	* gm2/mc/mcComment.def:  (commentDesc)  New datatype.
          (initComment)  New procedure function.  (addText)
          New procedure.  (getContent)  New procedure function.
	* gm2/mc/mcComment.h:  updated with new interface.
	* gm2/mc/mcComment.mod:  (commentDesc)  New datatype
	  implemented.
          (initComment)  New procedure function.  (addText)
          New procedure.  (getContent)  New procedure function.
	* gm2/mc/mcComp.def:  export getPassNo.
	* gm2/mc/mcComp.mod:  (getPassNo)  New procedure function.
	* gm2/mc/mcLexBuf.def:  (getProcedureComment)  New procedure
          function.  (getBodyComment)  New procedure function.
	  (getAfterComment)  New procedure function.
	* gm2/mc/mcLexBuf.h:  replicate .def functionality.
	* gm2/mc/mcLexBuf.mod:  (getProcedureComment)  Implement new
          procedure function.  (getBodyComment)  Implement new
	  procedure function.

2018-01-03  Gaius Mulley  <gaius@gnu.org>

	* gm2/gm2-compiler/M2GenGCC.mod:  (BuildUnaryCheckProcedure)
          imported.  (BuildNegateCheck) imported.  (CodeStatement)
          use BuildNegateCheck.  (CodeUnaryCheck)  New procedure.
          (CodeNegateChecked)  New procedure.
	* gm2/gm2-gcc/m2expr.c:  (checkUnaryWholeOverflow)  New
          function.  (m2expr_build_unary_op_check)  New function.
          (BuildEqualToZero)  New function.
          (checkWholeNegateOverflow)  New function.
          (BuildNegateCheck)  New function.  (BuildNegate)
          reimplemented.
	* gm2/gm2-gcc/m2expr.def:  (BuildUnaryCheckProcedure)
          Defined.  (BuildNegateCheck) defined.
	* gm2/gm2-gcc/m2expr.h:  (BuildNegateCheck) added prototype.

2018-01-02  Gaius Mulley  <gaius@gnu.org>

	* gm2/gm2-compiler/M2GenGCC.mod:  (CodeStatement) call
          CodeAddChecked and call CodeSubChecked.
          (CodeAddChecked)  New procedure.  (CodeSubChecked)
          New procedure.
	* gm2/gm2-compiler/M2Quads.mod:  (BuildEndFor) suppress
	  overflow checking in the addition
          of the loop variable.  The explicit for loop check will
          catch an overflow and this addition can overflow for
          unsigned types counting down.
	* gm2/gm2-gcc/m2expr.c:  (BuildAddCheck) corrected
	  comments and strip results.  (BuildSubCheck) corrected
          comments and strip results.
	* gm2/gm2-gcc/m2range.h:  (New file).
	* gm2/patches/gcc/trunc:  (Regenerated).

2018-01-01  Gaius Mulley  <gaius@gnu.org>

	* gm2/gm2-compiler/M2GenGCC.mod:  (CodeAddCheck) New procedure.
          (CodeSubCheck) New procedure.  (CodeBinaryCheck) New procedure.
          Use CodeAddCheck and CodeSubCheck.
	* gm2/gm2-compiler/M2Range.def:  (GetMinMax) exported.
	* gm2/gm2-gcc/m2expr.c:  (BuildAddCheck) New function.
	  (BuildSubCheck) New function.  (checkWholeAddOverflow)
          parameters changed.  (checkWholeSubOverflow)  New function.
          (checkWholeOverflow) updated parameters to include subrange min
	  and max.  (build_binary_op_check)  New function.  (build_binary_op)
          call build_binary_op_check.
	* gm2/gm2-gcc/m2expr.def:  (BuildBinCheckProcedure) New
          definition.  (BuildSubCheck) New procedure function.
	  (BuildAddCheck) New procedure function.
	* gm2/gm2-gcc/m2expr.h:  (BuildAddCheck)  New prototype.
          (BuildSubCheck)  New prototype.
	* gm2/gm2-compiler/M2GenGCC.mod:  pass lowest into binop.
	* gm2/gm2-gcc/m2expr.c:  (BuildAddCheck) extra parameter lowest.
          (BuildSubCheck) extra parameter lowest.  Call build_binary_op
          with extra parameter lowest.  (BuildLessThanZero) New function.
          (BuildGreaterThanZero) New function.  (checkWholeAddOverflow)
          extra parameter and use BuildLessThanZero and
	  BuildGreaterThanZero.    (checkWholeSubOverflow)
          extra parameter and use BuildLessThanZero and
          BuildGreaterThanZero.  (checkWholeOverflow) call
          checkWholeAddOverflow and checkWholeSubOverflow with an extra
          parameter.
	* gm2/gm2-gcc/m2expr.def:  (BuildBinCheckProcedure) extra
          parameter.  (BuildSubCheck) extra parameter lowest.
          (BuildAddCheck) extra parameter lowest.
	* gm2/gm2-gcc/m2expr.h:  corrected prototype.
