Age | Commit message (Collapse) | Author | Files | Lines |
|
The following relaxes a heuristic that prevents creating irreducible
loops from FSM threads not covering multi-way branches. Instead of
allowing threads that adhere to
&& (n_insns * (unsigned) param_fsm_scale_path_stmts
> (m_path.length () *
(unsigned) param_fsm_scale_path_blocks))
with reasoning "We also consider it worth creating an irreducible inner loop if
the number of copied statement is low relative to the length of the path --
in that case there's little the traditional loop optimizer would have done
anyway, so an irreducible loop is not so bad." that I cannot make much
sense of the following patch changes that to only allow those after
loop optimization and when they are (scaled) short:
&& (!(cfun->curr_properties & PROP_loop_opts_done)
|| (m_n_insns * param_fsm_scale_path_stmts
>= param_max_jump_thread_duplication_stmts)))
This allows us to get rid of --param fsm-scale-path-blocks which
previous to the bisected revision allowed an enlarged path covering
the original allowance (but we do not consider that enlarged path
now because enlarging it doesn't add any information).
PR tree-optimization/108352
* tree-ssa-threadbackward.cc
(back_threader_profitability::profitable_path_p): Adjust
heuristic that allows non-multi-way branch threads creating
irreducible loops.
* doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
(--param fsm-scale-path-stmts): Adjust.
* params.opt (--param=fsm-scale-path-blocks=): Remove.
(-param=fsm-scale-path-stmts=): Adjust description.
* gcc.dg/tree-ssa/ssa-thread-21.c: New testcase.
* gcc.dg/tree-ssa/vrp46.c: Remove --param fsm-scale-path-blocks=1.
|
|
The Modula-2 documentation is rejected by older versions of Makeinfo because
the web of @node markers is fairly broken, apparently some subsections were
moved around, most notably between the Overview and Using sections, and the
@node markers were not (properly) adjusted.
gcc/
* doc/gm2.texi (Overview): Fix @node markers.
(Using): Likewise. Remove subsections that were moved to Overview
from the menu and move others around.
|
|
__builtin_tgmath implements <tgmath.h> semantics for integer generic
arguments that handle cases involving _FloatN / _FloatNx types as
specified in TS 18661-3 plus some defect fixes.
C2x has further changes to the semantics for <tgmath.h> macros with
such types, which should also be considered defect fixes (although
handled through the integration of TS 18661-3 in C2x rather than
through an issue tracking process). Specifically, the rules were
changed because of problems raised with using the macros with the
evaluation format types such as float_t and _Float32_t: the older
version of the rules didn't allow passing _FloatN / _FloatNx types to
the narrowing macros returning float or double, or passing float /
double / long double to the narrowing macros returning _FloatN /
_FloatNx, which was a problem with the evaluation format types which
could be either kind of type depending on the value of
FLT_EVAL_METHOD.
Thus the new rules allow cases of mixing types which were not allowed
before - which is not itself a problem for __builtin_tgmath - and, as
part of the changes, the handling of integer arguments was also
changed: if there is any _FloatNx generic argument, integer generic
arguments are treated as _Float32x (not double), while the rule about
treating integer arguments to narrowing macros returning _FloatN or
_FloatNx as _Float64 not double was removed (no longer needed now
double is a valid argument to such macros).
Implement the changes for __builtin_tgmath. (The changes also added a
rule that if any argument is _DecimalNx, integer arguments are treated
as _Decimal64x, but GCC doesn't support _DecimalNx types so nothing is
done about that.)
I have a corresponding glibc patch to update glibc test expectations
for C2x and also ensure that appropriate semantics are followed when
GCC 7 through 12 are used with <tgmath.h> (avoiding __builtin_tgmath
in cases where it doesn't match the C2x semantics).
Bootstrapped with no regressions for x86_64-pc-linux-gnu.
gcc/
* doc/extend.texi (__builtin_tgmath): Do not restate standard rule
for handling real integer types.
gcc/c/
* c-parser.cc (c_parser_postfix_expression): Handle integer
generic arguments to functions passed to __builtin_tgmath as
_Float32x if any argument has _FloatNx or _Complex _FloatNx type.
Do not handle integer arguments to some narrowing functions as
_Float64.
gcc/testsuite/
* gcc.dg/builtin-tgmath-3.c: Update expectations and add more
tests.
|
|
The Var documentation was somehow wrongly split into 2 pieces.
PR middle-end/107966
gcc/ChangeLog:
* doc/options.texi: Fix Var documentation in internal manual.
|
|
This was unimplemented so far.
gcc/ChangeLog:
* common.opt: Add -static-libgm2.
* config/darwin.h (LINK_SPEC): Handle static-libgm2.
* doc/gm2.texi: Document static-libgm2.
* gcc.cc (driver_handle_option): Allow static-libgm2.
gcc/m2/ChangeLog:
* gm2spec.cc (lang_specific_driver): Handle static-libgm2.
* lang.opt: Add static-libgm2.
|
|
This reverts commit 3b6cac2b44b384cd2091eaeaebeb3478c253a25d.
|
|
Break the _FORTIFY_SOURCE-specific builtins out into a separate
subsection from Object Size Checking built-ins and mention
_FORTIFY_SOURCE in there so that the link between the object size
checking builtins, the helper builtins (e.g. __builtin___memcpy_chk) and
_FORTIFY_SOURCE is clearer.
gcc/ChangeLog:
PR tree-optimization/105043
* doc/extend.texi (Object Size Checking): Split out into two
subsections and mention _FORTIFY_SOURCE.
Signed-off-by: Siddhesh Poyarekar <siddhesh@gotplt.org>
|
|
The sizes are compile-time constants. Create a vector with them,
so that they can be inspected at compile time.
gcc/
* dwarf2cfi.cc (init_return_column_size): Remove.
(init_one_dwarf_reg_size): Adjust.
(generate_dwarf_reg_sizes): New function. Extracted
from expand_builtin_init_dwarf_reg_sizes.
(expand_builtin_init_dwarf_reg_sizes): Call
generate_dwarf_reg_sizes.
* target.def (init_dwarf_reg_sizes_extra): Adjust
hook signature.
* config/msp430/msp430.cc
(msp430_init_dwarf_reg_sizes_extra): Adjust.
* config/rs6000/rs6000.cc
(rs6000_init_dwarf_reg_sizes_extra): Likewise.
* doc/tm.texi: Update.
|
|
Manual part of copyright year updates.
2023-01-02 Jakub Jelinek <jakub@redhat.com>
gcc/
* gcc.cc (process_command): Update copyright notice dates.
* gcov-dump.cc (print_version): Ditto.
* gcov.cc (print_version): Ditto.
* gcov-tool.cc (print_version): Ditto.
* gengtype.cc (create_file): Ditto.
* doc/cpp.texi: Bump @copying's copyright year.
* doc/cppinternals.texi: Ditto.
* doc/gcc.texi: Ditto.
* doc/gccint.texi: Ditto.
* doc/gcov.texi: Ditto.
* doc/install.texi: Ditto.
* doc/invoke.texi: Ditto.
gcc/ada/
* gnat_ugn.texi: Bump @copying's copyright year.
* gnat_rm.texi: Likewise.
gcc/d/
* gdc.texi: Bump @copyrights-d year.
gcc/fortran/
* gfortranspec.cc (lang_specific_driver): Update copyright notice
dates.
* gfc-internals.texi: Bump @copying's copyright year.
* gfortran.texi: Ditto.
* intrinsic.texi: Ditto.
* invoke.texi: Ditto.
gcc/go/
* gccgo.texi: Bump @copyrights-go year.
libgomp/
* libgomp.texi: Bump @copying's copyright year.
libitm/
* libitm.texi: Bump @copying's copyright year.
libquadmath/
* libquadmath.texi: Bump @copying's copyright year.
|
|
if (mdaz-ftz)
link crtfastmath.o
else if ((Ofast || ffast-math || funsafe-math-optimizations)
&& !shared && !mno-daz-ftz)
link crtfastmath.o
else
Don't link crtfastmath.o
gcc/ChangeLog:
PR target/55522
PR target/36821
* config/i386/gnu-user-common.h (GNU_USER_TARGET_MATHFILE_SPEC):
Link crtfastmath.o whenever -mdaz-ftz is specified. Don't link
crtfastmath.o when -share or -mno-daz-ftz is specified.
* config/i386/i386.opt (mdaz-ftz): New option.
* doc/invoke.texi (x86 options): Document mftz-daz.
|
|
The documentation for the DONE and FAIL macros was incorrectly inserted
between example code, and a remark attached to that example.
gcc/ChangeLog:
* doc/md.texi: Move example code remark next to it's code block.
|
|
It is unclear why the example C function was renamed to
`commutative_integer_operator` as part of ec8e098d in 2004, while the
text and the example md were both left as `commutative_operator`. The
latter name appears to be more accurate, so revert the 2004 change.
gcc/ChangeLog:
* doc/md.texi: Fix inconsistent example name.
|
|
gcc/ChangeLog:
* doc/md.texi: Fix incorrect pxref.
|
|
There's no explicit mention of what GCC compiler supports C++11
and the cross compiler build requirement mentions GCC 4.8 but not
GCC 4.8.3 which is the earliest known version to not run into
C++11 implementation bugs. The following adds explicit wording.
PR bootstrap/106482
* doc/install.texi (ISO C++11 Compiler): Document GCC version
known to work.
|
|
Update documentation of -fwhole-program which was wrongly
claiming that it is useless with LTO whole it is useful for LTO without plugin
and extends -fwhole-program to also work with incremental linking.
This is useful when building kernel where the incremental link is de-facto fina
binary and only some explicitly marked symbols needs to remain.
Bootstrapped/regtested x86_64-linux, comitted.
gcc/ChangeLog:
2022-12-21 Jan Hubicka <hubicka@ucw.cz>
* doc/invoke.texi: Fix documentation of -fwhole-program with LTO
and document behaviour for incremental linking.
gcc/lto/ChangeLog:
2022-12-21 Jan Hubicka <hubicka@ucw.cz>
* lto-common.cc (lto_resolution_read): With incremental linking
and whole program ignore turn LDPR_PREVAILING_DEF_IRONLY to
LDPR_PREVAILING_DEF_IRONLY_EXP
* lto-lang.cc (lto_post_options): Do not clear flag_whole_program
for incremental link
|
|
This documents that GDC 9.4 or later is required to build the D
language rather than GDC 9.1 which suffers from PR94240.
PR d/104749
* doc/install.texi (GDC): Document GDC 9.4 or later is required
to build the D language frontend.
|
|
Don't add crtfastmath.o for -shared to avoid changing the MXCSR register
when loading a shared library. crtfastmath.o will be used only when
building executables.
PR target/55522
* config/i386/gnu-user-common.h (GNU_USER_TARGET_MATHFILE_SPEC):
Don't add crtfastmath.o for -shared.
* doc/invoke.texi (-shared): Add related documentation.
|
|
This patch implements the Solaris 11.[0-3] obsoletion just announced in
https://gcc.gnu.org/pipermail/gcc/2022-December/240322.html
Bootstrapped without regressions on Solaris 11.3 (i386-pc-solaris2.11,
sparc-sun-solaris2.11 without and with --enable-obsolete) and 11.4.
2022-12-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
gcc:
* config.gcc: Determine Solaris minor version.
Obsolete *-*-solaris2.11.[0-3]*.
* doc/install.texi (Specific, *-*-solaris2*): Document it.
|
|
'-Wstrict-flex-arrays'
Warn about inproper usages of flexible array members according to
the LEVEL of the 'strict_flex_array (LEVEL)' attribute attached to
the trailing array field of a structure if it's available,
otherwise according to the LEVEL of the option
'-fstrict-flex-arrays=LEVEL'.
This option is effective only when LEVEL is bigger than 0.
Otherwise, it will be ignored with a warning.
when LEVEL=1, warnings will be issued for a trailing array
reference of a structure that have 2 or more elements if the
trailing array is referenced as a flexible array member.
when LEVEL=2, in addition to LEVEL=1, additional warnings will be
issued for a trailing one-element array reference of a structure if
the array is referenced as a flexible array member.
when LEVEL=3, in addition to LEVEL=2, additional warnings will be
issued for a trailing zero-length array reference of a structure if
the array is referenced as a flexible array member.
gcc/ChangeLog:
* doc/invoke.texi: Document -Wstrict-flex-arrays option.
* gimple-array-bounds.cc (check_out_of_bounds_and_warn): Add two more
arguments.
(array_bounds_checker::check_array_ref): Issue warnings for
-Wstrict-flex-arrays.
* opts.cc (finish_options): Issue warning for unsupported combination
of -Wstrict_flex_arrays and -fstrict-flex-array.
* tree-vrp.cc (execute_ranger_vrp): Enable the pass when
warn_strict_flex_array is true.
gcc/c-family/ChangeLog:
* c.opt (Wstrict-flex-arrays): New option.
gcc/testsuite/ChangeLog:
* gcc.dg/Warray-bounds-flex-arrays-1.c: Update testing case with
-Wstrict-flex-arrays.
* gcc.dg/Warray-bounds-flex-arrays-2.c: Likewise.
* gcc.dg/Warray-bounds-flex-arrays-3.c: Likewise.
* gcc.dg/Warray-bounds-flex-arrays-4.c: Likewise.
* gcc.dg/Warray-bounds-flex-arrays-5.c: Likewise.
* gcc.dg/Warray-bounds-flex-arrays-6.c: Likewise.
* c-c++-common/Wstrict-flex-arrays.c: New test.
* gcc.dg/Wstrict-flex-arrays-2.c: New test.
* gcc.dg/Wstrict-flex-arrays-3.c: New test.
* gcc.dg/Wstrict-flex-arrays.c: New test.
|
|
gcc/ChangeLog:
* doc/extend.texi (__builtin_riscv_pause): Imply
Xgnuzihintpausestate.
|
|
__builtin_dynamic_object_size is missing from the full list of builtins,
so add it. Also mention it alongside __builtin_object_size in the
passes description.
gcc/ChangeLog:
* doc/extend.texi (__builtin_dynamic_object_size): Document
builtin.
* doc/passes.texi
(Optimize calls to @code{__builtin_object_size}): Also mention
__builtin_dynamic_object_size.
Signed-off-by: Siddhesh Poyarekar <siddhesh@gotplt.org>
|
|
Fix the documentation to say that object sizes are deduced using
__builtin_dynamic_object_size.
gcc/ChangeLog:
PR middle-end/70090
* doc/invoke.texi (-fsanitize=object-size): Use
__builtin_dynamic_object_size instead of
__builtin_object_size.
Signed-off-by: Siddhesh Poyarekar <siddhesh@gotplt.org>
|
|
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>
|
|
Somehow I made the description of the parameter almost the opposite of
what I wanted to say. Fixed by this patch.
Tested by building gcc on x86_64-linux and make info and make pdf.
gcc/ChangeLog:
2022-12-14 Martin Jambor <mjambor@suse.cz>
* doc/invoke.texi (ipa-sra-ptrwrap-growth-factor): Fix the
description.
* params.opt (ipa-sra-ptrwrap-growth-factor): Likewise.
|
|
gcc/ChangeLog:
* doc/invoke.texi: Document ipa-sra-ptrwrap-growth-factor.
|
|
C++ and especially Fortran pass data by references which are not
pointers potentially pointing anywhere and so can be assumed to be
safely dereferencable. This patch teaches IPA-SRA to treat them as
such and avoid the dance we do to prove that we can move loads from
them to the caller.
When we do not know that a dereference will happen all the time, we
need a heuristics so that we do not force memory accesses that normally
happen only rarely. The patch simply uses the (possibly guessed)
profile and checks whether the (expected) number of loads is at least
half of function invocations invocations - the half is now
configurable with a param as requested by Honza.
gcc/ChangeLog:
2022-12-13 Martin Jambor <mjambor@suse.cz>
PR ipa/103585
* params.opt (ipa-sra-deref-prob-threshold): New parameter.
* doc/invoke.texi (ipa-sra-deref-prob-threshold): Document it.
* ipa-sra.cc (struct gensum_param_access): New field load_count.
(struct gensum_param_desc): New field safe_ref, adjusted comments.
(by_ref_count): Renamed to unsafe_by_ref_count, adjusted all uses.
(dump_gensum_access): Dump the new field.
(dump_gensum_param_descriptor): Likewise.
(create_parameter_descriptors): Set safe_ref field, move setting
by_ref forward. Only increment unsafe_by_ref_count for unsafe
by_ref parameters.
(allocate_access): Initialize new field.
(mark_param_dereference): Adjust indentation. Only add data to
bb_dereferences for unsafe by_ref parameters.
(scan_expr_access): For loads, accumulate BB counts.
(dereference_probable_p): New function.
(check_gensum_access): Fix leading comment, add parameter FUN.
Check cumulative counts of loads for safe by_ref accesses instead
of dereferences.
(process_scan_results): Do not propagate dereference distances for
safe by_ref parameters. Pass fun to check_gensum_access. Safe
by_ref params do not need the postdominance check.
gcc/testsuite/ChangeLog:
2022-11-11 Martin Jambor <mjambor@suse.cz>
* g++.dg/ipa/ipa-sra-5.C: New test
|
|
This makes sure we treat .DEFERRED_INIT as producing UNDEFINED so
we can continue optimizing uninitialized uses the same as without
-ftrivial-auto-var-init=zero. For the testcase this means we
catch the return 1 optimization opportunity at CCP rather than
only at FRE which already does the right thing here.
PR tree-optimization/105801
* tree-ssa-ccp.cc (likely_value): .DEFERRED_INIT produces
UNDEFINED.
* doc/invoke.texi (ftrivial-auto-var-init): Explicitely
mention we treat variables without an initializer as
undefined also for optimization purposes.
* gcc.dg/tree-ssa/ssa-ccp-43.c: New testcase.
|
|
operations
This adds a new test-and-branch optab that can be used to do a conditional test
of a bit and branch. This is similar to the cbranch optab but instead can
test any arbitrary bit inside the register.
This patch recognizes boolean comparisons and single bit mask tests.
gcc/ChangeLog:
* dojump.cc (do_jump): Pass along value.
(do_jump_by_parts_greater_rtx): Likewise.
(do_jump_by_parts_zero_rtx): Likewise.
(do_jump_by_parts_equality_rtx): Likewise.
(do_compare_rtx_and_jump): Likewise.
(do_compare_and_jump): Likewise.
* dojump.h (do_compare_rtx_and_jump): New.
* optabs.cc (emit_cmp_and_jump_insn_1): Refactor to take optab to check.
(validate_test_and_branch): New.
(emit_cmp_and_jump_insns): Optiobally take a value, and when value is
supplied then check if it's suitable for tbranch.
* optabs.def (tbranch_eq$a4, tbranch_ne$a4): New.
* doc/md.texi (tbranch_@var{op}@var{mode}4): Document it.
* optabs.h (emit_cmp_and_jump_insns): New.
* tree.h (tree_zero_one_valued_p): New.
|
|
Similar story as PR103661, we again return a negative number
for __builtin_cpu_supports:
Documentation says:
int __builtin_cpu_supports(const char *feature)
This function returns a positive integer if the run-time CPU supports feature and returns 0 otherwise.
while we return -2147483648.
Moreover, I noticed "x86-64" is not a valid option for __builtin_cpu_is,
but for __builtin_cpu_supports.
PR target/107551
gcc/ChangeLog:
* config/i386/i386-builtins.cc (fold_builtin_cpu): Use same path
as for PR103661.
* doc/extend.texi: Fix "x86-64" use.
gcc/testsuite/ChangeLog:
* gcc.target/i386/builtin_target.c: Add more checks.
|
|
gcc/ChangeLog:
* doc/invoke.texi (x86 options): Document
-mlam={none,u48,u57}.
* config/i386/i386-opts.h (enum lam_type): New enum.
* config/i386/i386.cc (ix86_memtag_can_tag_addresses): New.
(ix86_memtag_set_tag): Ditto.
(ix86_memtag_extract_tag): Ditto.
(ix86_memtag_add_tag): Ditto.
(ix86_memtag_tag_size): Ditto.
(ix86_memtag_untagged_pointer): Ditto.
(TARGET_MEMTAG_CAN_TAG_ADDRESSES): New.
(TARGET_MEMTAG_ADD_TAG): Ditto.
(TARGET_MEMTAG_SET_TAG): Ditto.
(TARGET_MEMTAG_EXTRACT_TAG): Ditto.
(TARGET_MEMTAG_UNTAGGED_POINTER): Ditto.
(TARGET_MEMTAG_TAG_SIZE): Ditto.
(IX86_HWASAN_SHIFT): Ditto.
(IX86_HWASAN_TAG_SIZE): Ditto.
* config/i386/i386-expand.cc (ix86_expand_call): Untag code
pointer.
* config/i386/i386-options.cc (ix86_option_override_internal):
Error when enable -mlam=[u48|u57] for 32-bit code.
* config/i386/i386.opt: Add -mlam=[none|u48|u57].
* config/i386/i386-protos.h (ix86_memtag_untagged_pointer):
Declare.
(ix86_memtag_can_tag_addresses): Ditto.
|
|
I got a complaint that while Clang docs suggest options that improve
the quality of the backtraces ASAN prints (cf.
<https://clang.llvm.org/docs/AddressSanitizer.html#usage>), our docs
don't say anything to that effect. This patch amends that with a new
paragraph. (It deliberately doesn't mention -fno-omit-frame-pointer.)
gcc/ChangeLog:
* doc/invoke.texi (-fsanitize=address): Suggest options to improve
stack traces.
|
|
A. add the following to clarify the relationship between -Warray-bounds
and the LEVEL of -fstrict-flex-array:
By default, the trailing array of a structure will be treated as a
flexible array member by '-Warray-bounds' or '-Warray-bounds=N' if
it is declared as either a flexible array member per C99 standard
onwards ('[]'), a GCC zero-length array extension ('[0]'), or an
one-element array ('[1]'). As a result, out of bounds subscripts
or offsets into zero-length arrays or one-element arrays are not
warned by default.
You can add the option '-fstrict-flex-arrays' or
'-fstrict-flex-arrays=LEVEL' to control how this option treat
trailing array of a structure as a flexible array member.
when LEVEL<=1, no change to the default behavior.
when LEVEL=2, additional warnings will be issued for out of bounds
subscripts or offsets into one-element arrays;
when LEVEL=3, in addition to LEVEL=2, additional warnings will be
issued for out of bounds subscripts or offsets into zero-length
arrays.
B. change -Warray-bounds=2 to exclude its control on how to treat
trailing arrays as flexible array members:
'-Warray-bounds=2'
This warning level also warns about the intermediate results
of pointer arithmetic that may yield out of bounds values.
This warning level may give a larger number of false positives
and is deactivated by default.
gcc/ChangeLog:
* attribs.cc (strict_flex_array_level_of): New function.
* attribs.h (strict_flex_array_level_of): Prototype for new function.
* doc/invoke.texi: Update -Warray-bounds by specifying the impact from
-fstrict-flex-arrays. Also update -Warray-bounds=2 by eliminating its
impact on treating trailing arrays as flexible array members.
* gimple-array-bounds.cc (get_up_bounds_for_array_ref): New function.
(check_out_of_bounds_and_warn): New function.
(array_bounds_checker::check_array_ref): Update with call to the above
new functions.
* tree.cc (array_ref_flexible_size_p): Add one new argument.
(component_ref_sam_type): New function.
(component_ref_size): Control with level of strict-flex-array.
* tree.h (array_ref_flexible_size_p): Update prototype.
(enum struct special_array_member): Add two new enum values.
(component_ref_sam_type): New prototype.
gcc/c/ChangeLog:
* c-decl.cc (is_flexible_array_member_p): Call new function
strict_flex_array_level_of.
gcc/testsuite/ChangeLog:
* gcc.dg/Warray-bounds-11.c: Update warnings for -Warray-bounds=2.
* gcc.dg/Warray-bounds-flex-arrays-1.c: New test.
* gcc.dg/Warray-bounds-flex-arrays-2.c: New test.
* gcc.dg/Warray-bounds-flex-arrays-3.c: New test.
* gcc.dg/Warray-bounds-flex-arrays-4.c: New test.
* gcc.dg/Warray-bounds-flex-arrays-5.c: New test.
* gcc.dg/Warray-bounds-flex-arrays-6.c: New test.
|
|
gcc/ChangeLog:
* doc/analyzer.texi: Drop out-of-date ideas for other checkers.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
|
|
The following adds a --param to limit the depth of unswitched loop
nests. One can use --param max-unswitch-depth=1 to disable unswitching
of outer loops (the innermost loop will then be unswitched).
PR tree-optimization/107946
* params.opt (-param=max-unswitch-depth=): New.
* doc/invoke.texi (--param=max-unswitch-depth): Document.
* tree-ssa-loop-unswitch.cc (init_loop_unswitch_info): Honor
--param=max-unswitch-depth
|
|
This patch includes "(or later)" in the documentation of the gcc
subdirectory's --with-dwarf2 configure flag. Closes PR59447.
gcc/ChangeLog:
PR bootstrap/59447
* configure: Regenerate.
* configure.ac: Document --with-dwarf2 flag as also
applying to later DWARF standards.
* doc/install.texi: Likewise.
|
|
PR analyzer/103546 tracks various false positives seen on
flex-generated lexers.
Whilst investigating them, I noticed an ICE with
-fanalyzer-call-summaries due to attempting to store sm-state
for an UNKNOWN svalue, which this patch fixes.
This patch also provides known_function implementations of all of the
external functions called by the lexer, reducing the number of false
positives.
The patch doesn't eliminate all false positives, but adds integration
tests to try to establish a baseline from which the remaining false
positives can be fixed.
gcc/analyzer/ChangeLog:
PR analyzer/103546
* analyzer.h (register_known_file_functions): New decl.
* program-state.cc (sm_state_map::replay_call_summary): Rejct
attempts to store sm-state for caller_sval that can't have
associated state.
* region-model-impl-calls.cc (register_known_functions): Call
register_known_file_functions.
* sm-fd.cc (class kf_isatty): New.
(register_known_fd_functions): Register it.
* sm-file.cc (class kf_ferror): New.
(class kf_fileno): New.
(class kf_getc): New.
(register_known_file_functions): New.
gcc/ChangeLog:
PR analyzer/103546
* doc/invoke.texi (Static Analyzer Options): Add isatty, ferror,
fileno, and getc to the list of functions known to the analyzer.
gcc/testsuite/ChangeLog:
PR analyzer/103546
* gcc.dg/analyzer/ferror-1.c: New test.
* gcc.dg/analyzer/fileno-1.c: New test.
* gcc.dg/analyzer/flex-with-call-summaries.c: New test.
* gcc.dg/analyzer/flex-without-call-summaries.c: New test.
* gcc.dg/analyzer/getc-1.c: New test.
* gcc.dg/analyzer/isatty-1.c: New test.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
|
|
This patch causes the IPA simdclone pass to generate clones for
functions with the "omp declare target" attribute as if they had
"omp declare simd", provided the function appears to be suitable for
SIMD execution. The filter is conservative, rejecting functions
that write memory or that call other functions not known to be safe.
A new option -fopenmp-target-simd-clone is added to control this
transformation; it's enabled for offload processing at -O2 and higher.
gcc/ChangeLog:
* common.opt (fopenmp-target-simd-clone): New option.
(target_simd_clone_device): New enum to go with it.
* doc/invoke.texi (-fopenmp-target-simd-clone): Document.
* flag-types.h (enum omp_target_simd_clone_device_kind): New.
* omp-simd-clone.cc (auto_simd_fail): New function.
(auto_simd_check_stmt): New function.
(plausible_type_for_simd_clone): New function.
(ok_for_auto_simd_clone): New function.
(simd_clone_create): Add force_local argument, make the symbol
have internal linkage if it is true.
(expand_simd_clones): Also check for cloneable functions with
"omp declare target". Pass explicit_p argument to
simd_clone.compute_vecsize_and_simdlen target hook.
* opts.cc (default_options_table): Add -fopenmp-target-simd-clone.
* target.def (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN):
Add bool explicit_p argument.
* doc/tm.texi: Regenerated.
* config/aarch64/aarch64.cc
(aarch64_simd_clone_compute_vecsize_and_simdlen): Update.
* config/gcn/gcn.cc
(gcn_simd_clone_compute_vecsize_and_simdlen): Update.
* config/i386/i386.cc
(ix86_simd_clone_compute_vecsize_and_simdlen): Update.
gcc/testsuite/ChangeLog:
* g++.dg/gomp/target-simd-clone-1.C: New.
* g++.dg/gomp/target-simd-clone-2.C: New.
* gcc.dg/gomp/target-simd-clone-1.c: New.
* gcc.dg/gomp/target-simd-clone-2.c: New.
* gcc.dg/gomp/target-simd-clone-3.c: New.
* gcc.dg/gomp/target-simd-clone-4.c: New.
* gcc.dg/gomp/target-simd-clone-5.c: New.
* gcc.dg/gomp/target-simd-clone-6.c: New.
* gcc.dg/gomp/target-simd-clone-7.c: New.
* gcc.dg/gomp/target-simd-clone-8.c: New.
* lib/scanoffloadipa.exp: New.
libgomp/ChangeLog:
* testsuite/lib/libgomp.exp: Load scanoffloadipa.exp library.
* testsuite/libgomp.c/target-simd-clone-1.c: New.
* testsuite/libgomp.c/target-simd-clone-2.c: New.
* testsuite/libgomp.c/target-simd-clone-3.c: New.
|
|
This removes all uses of ASSERT_EXPR except the internal one in ipa-*.
gcc/ChangeLog:
* doc/gimple.texi: Remove ASSERT_EXPR references.
* fold-const.cc (tree_expr_nonzero_warnv_p): Same.
(fold_binary_loc): Same.
(tree_expr_nonnegative_warnv_p): Same.
* gimple-array-bounds.cc (get_base_decl): Same.
* gimple-pretty-print.cc (dump_unary_rhs): Same.
* gimple.cc (get_gimple_rhs_num_ops): Same.
* pointer-query.cc (handle_ssa_name): Same.
* tree-cfg.cc (verify_gimple_assign_single): Same.
* tree-pretty-print.cc (dump_generic_node): Same.
* tree-scalar-evolution.cc (scev_dfs::follow_ssa_edge_expr):Same.
(interpret_rhs_expr): Same.
* tree-ssa-operands.cc (operands_scanner::get_expr_operands): Same.
* tree-ssa-propagate.cc
(substitute_and_fold_dom_walker::before_dom_children): Same.
* tree-ssa-threadedge.cc: Same.
* tree-vrp.cc (overflow_comparison_p): Same.
* tree.def (ASSERT_EXPR): Add note.
* tree.h (ASSERT_EXPR_VAR): Remove.
(ASSERT_EXPR_COND): Remove.
* vr-values.cc (simplify_using_ranges::vrp_visit_cond_stmt):
Remove comment.
|
|
Removes unused legacy VRP code. The legacy mode in value_range's is
still around, as it can't be trivially deleted.
With this patch vr-values.cc melts away to simplify_using_ranges, but
I have avoided any renaming of actual files, since we have plans for
consolidation of other folding with ranges for the next release.
gcc/ChangeLog:
* doc/invoke.texi: Remove docs for max-vrp-switch-assertions,
vrp1-mode, and vrp2-mode.
* params.opt: Same.
* range-op.cc (masked_increment): Move from tree-vrp.cc.
* tree-vrp.cc (class live_names): Remove.
(live_names::init_bitmap_if_needed): Remove.
(live_names::block_has_live_names_p): Remove.
(live_names::clear_block): Remove.
(live_names::merge): Remove.
(live_names::set): Remove.
(live_names::clear): Remove.
(live_names::live_names): Remove.
(live_names::~live_names): Remove.
(live_names::live_on_block_p): Remove.
(live_names::live_on_edge_p): Remove.
(get_single_symbol): Make static.
(build_symbolic_expr): Remove.
(adjust_symbolic_bound): Remove.
(combine_bound): Remove.
(set_value_range_with_overflow): Remove.
(extract_range_from_pointer_plus_expr): Remove.
(extract_range_from_plus_minus_expr): Remove.
(drop_undefines_to_varying): Remove.
(range_fold_binary_symbolics_p): Remove.
(range_fold_unary_symbolics_p): Remove.
(range_fold_binary_expr): Remove.
(infer_value_range): Remove.
(dump_assert_info): Remove.
(dump_asserts_info): Remove.
(add_assert_info): Remove.
(extract_code_and_val_from_cond_with_ops): Remove.
(masked_increment): Move to range-op.cc.
(register_edge_assert_for_2): Remove.
(find_case_label_index): Remove.
(find_case_label_range): Remove.
(register_edge_assert_for_1): Remove.
(is_masked_range_test): Remove.
(register_edge_assert_for): Remove.
(stmt_interesting_for_vrp): Remove.
(struct case_info): Remove.
(struct assert_locus): Remove.
(class vrp_asserts): Remove.
(vrp_asserts::build_assert_expr_for): Remove.
(vrp_asserts::dump): Remove.
(vrp_asserts::register_new_assert_for): Remove.
(vrp_asserts::finish_register_edge_assert_for): Remove.
(vrp_asserts::find_conditional_asserts): Remove.
(vrp_asserts::compare_case_labels): Remove.
(vrp_asserts::find_switch_asserts): Remove.
(vrp_asserts::find_assert_locations_in_bb): Remove.
(vrp_asserts::find_assert_locations): Remove.
(vrp_asserts::process_assert_insertions_for): Remove.
(vrp_asserts::compare_assert_loc): Remove.
(vrp_asserts::process_assert_insertions): Remove.
(vrp_asserts::insert_range_assertions): Remove.
(vrp_asserts::all_imm_uses_in_stmt_or_feed_cond): Remove.
(vrp_asserts::remove_range_assertions): Remove.
(class vrp_prop): Remove.
(vrp_prop::initialize): Remove.
(enum ssa_prop_result): Remove.
(vrp_prop::visit_stmt): Remove.
(vrp_prop::visit_phi): Remove.
(vrp_prop::finalize): Remove.
(class vrp_folder): Remove.
(vrp_folder::fold_predicate_in): Remove.
(vrp_folder::fold_stmt): Remove.
(vrp_folder::simplify_casted_conds): Remove.
(execute_vrp): Remove.
* tree-vrp.h (struct assert_info): Remove.
(register_edge_assert_for): Remove.
(stmt_interesting_for_vrp): Remove.
(infer_value_range): Remove.
(get_single_symbol): Remove.
(masked_increment): Remove.
(execute_ranger_vrp): Remove.
* vr-values.cc (set_value_range_to_nonnegative): Remove.
(set_value_range_to_truthvalue): Remove.
(vr_values::get_lattice_entry): Remove.
(vr_values::get_value_range): Remove.
(vr_values::range_of_expr): Remove.
(vr_values::value_of_expr): Remove.
(vr_values::value_on_edge): Remove.
(vr_values::value_of_stmt): Remove.
(vr_values::set_def_to_varying): Remove.
(vr_values::set_defs_to_varying): Remove.
(vr_values::update_value_range): Remove.
(symbolic_range_based_on_p): Remove.
(gimple_assign_nonzero_p): Remove.
(gimple_stmt_nonzero_p): Remove.
(vr_values::vrp_stmt_computes_nonzero): Remove.
(vr_values::op_with_constant_singleton_value_range): Remove.
(vr_values::extract_range_for_var_from_comparison_expr): Remove.
(vr_values::extract_range_from_assert): Remove.
(vr_values::extract_range_from_ssa_name): Remove.
(vr_values::extract_range_from_binary_expr): Remove.
(vr_values::extract_range_from_unary_expr): Remove.
(vr_values::extract_range_from_cond_expr): Remove.
(vr_values::extract_range_from_comparison): Remove.
(vr_values::extract_range_from_ubsan_builtin): Remove.
(vr_values::extract_range_basic): Remove.
(vr_values::extract_range_from_assignment): Remove.
(vr_values::adjust_range_with_scev): Remove.
(vr_values::dump): Remove.
(vr_values::vr_values): Remove.
(vr_values::~vr_values): Remove.
(vrp_valueize): Remove.
(vrp_valueize_1): Remove.
(get_output_for_vrp): Remove.
(vr_values::vrp_visit_assignment_or_call): Remove.
(simplify_using_ranges::vrp_evaluate_conditional): Remove.
(vr_values::vrp_visit_switch_stmt): Remove.
(vr_values::extract_range_from_stmt): Remove.
(vr_values::extract_range_from_phi_node): Remove.
(simplify_using_ranges::fold_cond): Add FIXME note.
(vr_values::set_vr_value): Remove.
(vr_values::swap_vr_value): Remove.
* vr-values.h (class vr_values): Remove.
(get_output_for_vrp): Remove.
|
|
The newer -Wdelete-non-virtual-dtor has no false positives and fewer
bugs. There is very little reason to use -Wnon-virtual-dtor instead.
gcc/ChangeLog:
* doc/invoke.texi (C++ Dialect Options): Recommend using
-Wdelete-non-virtual-dtor instead of -Wnon-virtual-dtor.
|
|
This reverts commit 251c72a68af3a8b0638705b73ef120ffdf0053eb.
|
|
This reverts commit 258d7149f92f19380c9f7763618d62408c064e60.
|
|
As promised in the --enable-host-pie patch, this patch adds another
configure option, --enable-host-bind-now, which adds -z now when linking
the compiler executables in order to extend hardening. BIND_NOW with RELRO
allows the GOT to be marked RO; this prevents GOT modification attacks.
This option does not affect linking of target libraries; you can use
LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now to enable RELRO/BIND_NOW.
c++tools/ChangeLog:
* configure.ac (--enable-host-bind-now): New check.
* configure: Regenerate.
gcc/ChangeLog:
* configure.ac (--enable-host-bind-now): New check. Add
-Wl,-z,now to LD_PICFLAG if --enable-host-bind-now.
* configure: Regenerate.
* doc/install.texi: Document --enable-host-bind-now.
lto-plugin/ChangeLog:
* configure.ac (--enable-host-bind-now): New check. Link with
-z,now.
* configure: Regenerate.
|
|
This patch implements the --enable-host-pie configure option which
makes the compiler executables PIE. This can be used to enhance
protection against ROP attacks, and can be viewed as part of a wider
trend to harden binaries.
It is similar to the option --enable-host-shared, except that --e-h-s
won't add -shared to the linker flags whereas --e-h-p will add -pie.
It is different from --enable-default-pie because that option just
adds an implicit -fPIE/-pie when the compiler is invoked, but the
compiler itself isn't PIE.
Since r12-5768-gfe7c3ecf, PCH works well with PIE, so there are no PCH
regressions.
When building the compiler, the build process may use various in-tree
libraries; these need to be built with -fPIE so that it's possible to
use them when building a PIE. For instance, when --with-included-gettext
is in effect, intl object files must be compiled with -fPIE. Similarly,
when building in-tree gmp, isl, mpfr and mpc, they must be compiled with
-fPIE.
I plan to add an option to link with -Wl,-z,now.
ChangeLog:
* Makefile.def: Pass $(PICFLAG) to AM_CFLAGS for gmp, mpfr, mpc, and
isl.
* Makefile.in: Regenerate.
* Makefile.tpl: Set PICFLAG.
* configure.ac (--enable-host-pie): New check. Set PICFLAG after this
check.
* configure: Regenerate.
c++tools/ChangeLog:
* Makefile.in: Rename PIEFLAG to PICFLAG. Set LD_PICFLAG. Use it.
Use pic/libiberty.a if PICFLAG is set.
* configure.ac (--enable-default-pie): Set PICFLAG instead of PIEFLAG.
(--enable-host-pie): New check.
* configure: Regenerate.
fixincludes/ChangeLog:
* Makefile.in: Set and use PICFLAG and LD_PICFLAG. Use the "pic"
build of libiberty if PICFLAG is set.
* configure.ac:
* configure: Regenerate.
gcc/ChangeLog:
* Makefile.in: Set LD_PICFLAG. Use it. Set enable_host_pie.
Remove NO_PIE_CFLAGS and NO_PIE_FLAG. Pass LD_PICFLAG to
ALL_LINKERFLAGS. Use the "pic" build of libiberty if --enable-host-pie.
* configure.ac (--enable-host-shared): Don't set PICFLAG here.
(--enable-host-pie): New check. Set PICFLAG and LD_PICFLAG after this
check.
* configure: Regenerate.
* doc/install.texi: Document --enable-host-pie.
gcc/d/ChangeLog:
* Make-lang.in: Remove NO_PIE_CFLAGS.
intl/ChangeLog:
* Makefile.in: Use @PICFLAG@ in COMPILE as well.
* configure.ac (--enable-host-shared): Don't set PICFLAG here.
(--enable-host-pie): New check. Set PICFLAG after this check.
* configure: Regenerate.
libcody/ChangeLog:
* Makefile.in: Pass LD_PICFLAG to LDFLAGS.
* configure.ac (--enable-host-shared): Don't set PICFLAG here.
(--enable-host-pie): New check. Set PICFLAG and LD_PICFLAG after this
check.
* configure: Regenerate.
libcpp/ChangeLog:
* configure.ac (--enable-host-shared): Don't set PICFLAG here.
(--enable-host-pie): New check. Set PICFLAG after this check.
* configure: Regenerate.
libdecnumber/ChangeLog:
* configure.ac (--enable-host-shared): Don't set PICFLAG here.
(--enable-host-pie): New check. Set PICFLAG after this check.
* configure: Regenerate.
libiberty/ChangeLog:
* configure.ac: Also set shared when enable_host_pie.
* configure: Regenerate.
zlib/ChangeLog:
* configure.ac (--enable-host-shared): Don't set PICFLAG here.
(--enable-host-pie): New check. Set PICFLAG after this check.
* configure: Regenerate.
|
|
The new analyzer tests for sockets are failing on embedded targets.
The newlib and avr-libc C libraries do not support sockets.
Testing done:
- No changes in gcc.sum for x86_64-pc-linux-gnu, with or without this
patch.
- Filtered cases are now UNSUPPORTED instead of failing on AVR and PRU
backends.
gcc/ChangeLog:
* doc/sourcebuild.texi (sockets): Document new check.
gcc/testsuite/ChangeLog:
* gcc.dg/analyzer/fd-accept.c: Require sockets.
* gcc.dg/analyzer/fd-bind.c: Ditto.
* gcc.dg/analyzer/fd-connect.c: Ditto.
* gcc.dg/analyzer/fd-datagram-socket.c: Ditto.
* gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c:
Ditto.
* gcc.dg/analyzer/fd-glibc-byte-stream-socket.c: Ditto.
* gcc.dg/analyzer/fd-glibc-datagram-client.c: Ditto.
* gcc.dg/analyzer/fd-glibc-datagram-socket.c: Ditto.
* gcc.dg/analyzer/fd-listen.c: Ditto.
* gcc.dg/analyzer/fd-manpage-getaddrinfo-client.c: Ditto.
* gcc.dg/analyzer/fd-mappage-getaddrinfo-server.c: Ditto.
* gcc.dg/analyzer/fd-socket-meaning.c: Ditto.
* gcc.dg/analyzer/fd-socket-misuse.c: Ditto.
* gcc.dg/analyzer/fd-stream-socket-active-open.c: Ditto.
* gcc.dg/analyzer/fd-stream-socket-passive-open.c: Ditto.
* gcc.dg/analyzer/fd-stream-socket.c: Ditto.
* gcc.dg/analyzer/fd-symbolic-socket.c: Ditto.
* lib/target-supports.exp (check_effective_target_sockets): New
check.
Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
|
|
Implement the P1492 versions of contracts, along with extensions that
support the emulation of N4820 and other proposals. This implementation
assigns a concrete semantic (one of: ignore, assume, enforce, or
observe) to each contract attribute depending on its labels and
configuration options.
Co-authored-by: Andrew Sutton <asutton@lock3software.com>
Co-authored-by: Andrew Marmaduke <amarmaduke@lock3software.com>
Co-authored-by: Michael Lopez <mlopez@lock3software.com>
Co-authored-by: Jason Merrill <jason@redhat.com>
gcc/ChangeLog:
* doc/invoke.texi: Document contracts flags.
gcc/c-family/ChangeLog:
* c.opt: Add contracts flags.
* c-cppbuiltin.cc (c_cpp_builtins): Add contracts feature-test
macros.
gcc/cp/ChangeLog:
* cp-tree.h (enum cp_tree_index): Add
CPTI_PSEUDO_CONTRACT_VIOLATION.
(pseudo_contract_violation_type): New macro.
(struct saved_scope): Add x_processing_contract_condition.
(processing_contract_condition): New macro.
(comparing_override_contracts): New variable decl.
(find_contract): New inline.
(set_decl_contracts): New inline.
(get_contract_semantic): New inline.
(set_contract_semantic): New inline.
* constexpr.cc (cxx_eval_assert): Split out from...
(cxx_eval_internal_function): ...here.
(cxx_eval_constant_expression): Use it for contracts.
(potential_constant_expression_1): Handle contracts.
* cp-gimplify.cc (cp_genericize_r): Handle contracts.
* cp-objcp-common.cc (cp_tree_size): Handle contracts.
(cp_common_init_ts): Handle contracts.
(cp_handle_option): Handle contracts.
* decl.cc (duplicate_decls): Handle contracts.
(check_tag_decl): Check for bogus contracts.
(start_decl): Check flag_contracts.
(grokfndecl): Call rebuild_postconditions.
(grokdeclarator): Handle contract attributes.
(start_preparsed_function): Call start_function_contracts.
(finish_function): Call finish_function_contracts.
* decl2.cc (cp_check_const_attributes): Skip contracts.
(comdat_linkage): Handle outlined contracts.
* error.cc (dump_type): Handle null TYPE_IDENTIFIER.
* g++spec.cc (EXPERIMENTAL): New macro.
(lang_specific_driver): Add -lstdc++exp if -fcontracts.
* mangle.cc (write_encoding): Handle outlined contracts.
* module.cc (trees_out::fn_parms_init): Handle outlined contracts.
(trees_in::fn_parms_init): Likewise.
(check_mergeable_decl): Likewise.
(module_state_config::get_dialect): Record -fcontracts.
* parser.h (struct cp_unparsed_functions_entry): Add contracts.
* parser.cc (unparsed_contracts): New macro.
(push_unparsed_function_queues): Adjust.
(contract_attribute_p): New.
(cp_parser_statement): Check contracts.
(cp_parser_decl_specifier_seq): Handle contracts.
(cp_parser_skip_to_closing_square_bracket): Split out...
(cp_parser_skip_up_to_closing_square_bracket): ...this fn.
(cp_parser_class_specifier): Do contract late parsing.
(cp_parser_class_head): Check contracts.
(cp_parser_contract_role): New.
(cp_parser_contract_mode_opt): New.
(find_error, contains_error_p): New.
(cp_parser_contract_attribute_spec): New.
(cp_parser_late_contract_condition): New.
(cp_parser_std_attribute_spec): Handle contracts.
(cp_parser_save_default_args): Also save contracts.
* pt.cc (register_parameter_specializations): No longer static.
(register_local_identity): New.
(check_explicit_specialization): Call remove_contract_attributes.
(tsubst_contract, tsubst_contract_attribute): New.
(tsubst_contract_attributes): New.
(tsubst_attribute): Add comment.
(tsubst_copy): Also allow parm when processing_contract_condition.
(tsubst_expr): Handle contracts.
(regenerate_decl_from_template): Handle contracts.
* search.cc (check_final_overrider): Compare contracts.
* semantics.cc (set_cleanup_locs): Skip POSTCONDITION_STMT.
(finish_non_static_data_member): Check contracts.
(finish_this_expr): Check contracts.
(process_outer_var_ref): Handle contracts.
(finish_id_expression_1): Handle contracts.
(apply_deduced_return_type): Adjust contracts.
* tree.cc (handle_contract_attribute): New.
(get_innermost_component, is_this_expression): New.
(comparing_this_references): New.
(equivalent_member_references): New.
(cp_tree_equal): Check it.
* typeck.cc (check_return_expr): Apply contracts.
* Make-lang.in: Add contracts.o.
* config-lang.in: Add contracts.cc.
* cp-tree.def (ASSERTION_STMT, PRECONDITION_STMT)
(POSTCONDITION_STMT): New.
* contracts.h: New file.
* contracts.cc: New file.
gcc/testsuite/ChangeLog:
* g++.dg/modules/modules.exp: Pass dg-options to link command.
* lib/g++.exp: Add -L for libstdc++exp.a.
* g++.dg/contracts/backtrace_handler/assert_fail.cpp: New test.
* g++.dg/contracts/backtrace_handler/handle_contract_violation.cpp: New test.
* g++.dg/contracts/contracts-access1.C: New test.
* g++.dg/contracts/contracts-assume1.C: New test.
* g++.dg/contracts/contracts-assume2.C: New test.
* g++.dg/contracts/contracts-assume3.C: New test.
* g++.dg/contracts/contracts-assume4.C: New test.
* g++.dg/contracts/contracts-assume5.C: New test.
* g++.dg/contracts/contracts-assume6.C: New test.
* g++.dg/contracts/contracts-comdat1.C: New test.
* g++.dg/contracts/contracts-config1.C: New test.
* g++.dg/contracts/contracts-constexpr1.C: New test.
* g++.dg/contracts/contracts-constexpr2.C: New test.
* g++.dg/contracts/contracts-constexpr3.C: New test.
* g++.dg/contracts/contracts-conversion1.C: New test.
* g++.dg/contracts/contracts-ctor-dtor1.C: New test.
* g++.dg/contracts/contracts-ctor-dtor2.C: New test.
* g++.dg/contracts/contracts-cv1.C: New test.
* g++.dg/contracts/contracts-deduced1.C: New test.
* g++.dg/contracts/contracts-deduced2.C: New test.
* g++.dg/contracts/contracts-friend1.C: New test.
* g++.dg/contracts/contracts-ft1.C: New test.
* g++.dg/contracts/contracts-ignore1.C: New test.
* g++.dg/contracts/contracts-ignore2.C: New test.
* g++.dg/contracts/contracts-large-return.C: New test.
* g++.dg/contracts/contracts-multiline1.C: New test.
* g++.dg/contracts/contracts-multiple-inheritance1.C: New test.
* g++.dg/contracts/contracts-multiple-inheritance2.C: New test.
* g++.dg/contracts/contracts-nested-class1.C: New test.
* g++.dg/contracts/contracts-nested-class2.C: New test.
* g++.dg/contracts/contracts-nocopy1.C: New test.
* g++.dg/contracts/contracts-override.C: New test.
* g++.dg/contracts/contracts-post1.C: New test.
* g++.dg/contracts/contracts-post2.C: New test.
* g++.dg/contracts/contracts-post3.C: New test.
* g++.dg/contracts/contracts-post4.C: New test.
* g++.dg/contracts/contracts-post5.C: New test.
* g++.dg/contracts/contracts-post6.C: New test.
* g++.dg/contracts/contracts-pre1.C: New test.
* g++.dg/contracts/contracts-pre10.C: New test.
* g++.dg/contracts/contracts-pre2.C: New test.
* g++.dg/contracts/contracts-pre2a1.C: New test.
* g++.dg/contracts/contracts-pre2a2.C: New test.
* g++.dg/contracts/contracts-pre3.C: New test.
* g++.dg/contracts/contracts-pre4.C: New test.
* g++.dg/contracts/contracts-pre5.C: New test.
* g++.dg/contracts/contracts-pre6.C: New test.
* g++.dg/contracts/contracts-pre7.C: New test.
* g++.dg/contracts/contracts-pre9.C: New test.
* g++.dg/contracts/contracts-redecl1.C: New test.
* g++.dg/contracts/contracts-redecl2.C: New test.
* g++.dg/contracts/contracts-redecl3.C: New test.
* g++.dg/contracts/contracts-redecl4.C: New test.
* g++.dg/contracts/contracts-redecl5.C: New test.
* g++.dg/contracts/contracts-redecl6.C: New test.
* g++.dg/contracts/contracts-redecl7.C: New test.
* g++.dg/contracts/contracts-redecl8.C: New test.
* g++.dg/contracts/contracts-tmpl-attr1.C: New test.
* g++.dg/contracts/contracts-tmpl-spec1.C: New test.
* g++.dg/contracts/contracts-tmpl-spec2.C: New test.
* g++.dg/contracts/contracts-tmpl-spec3.C: New test.
* g++.dg/contracts/contracts1.C: New test.
* g++.dg/contracts/contracts10.C: New test.
* g++.dg/contracts/contracts11.C: New test.
* g++.dg/contracts/contracts12.C: New test.
* g++.dg/contracts/contracts13.C: New test.
* g++.dg/contracts/contracts14.C: New test.
* g++.dg/contracts/contracts15.C: New test.
* g++.dg/contracts/contracts16.C: New test.
* g++.dg/contracts/contracts17.C: New test.
* g++.dg/contracts/contracts18.C: New test.
* g++.dg/contracts/contracts19.C: New test.
* g++.dg/contracts/contracts2.C: New test.
* g++.dg/contracts/contracts20.C: New test.
* g++.dg/contracts/contracts22.C: New test.
* g++.dg/contracts/contracts24.C: New test.
* g++.dg/contracts/contracts25.C: New test.
* g++.dg/contracts/contracts3.C: New test.
* g++.dg/contracts/contracts35.C: New test.
* g++.dg/contracts/contracts4.C: New test.
* g++.dg/contracts/contracts5.C: New test.
* g++.dg/contracts/contracts6.C: New test.
* g++.dg/contracts/contracts7.C: New test.
* g++.dg/contracts/contracts8.C: New test.
* g++.dg/contracts/contracts9.C: New test.
* g++.dg/modules/contracts-1_a.C: New test.
* g++.dg/modules/contracts-1_b.C: New test.
* g++.dg/modules/contracts-2_a.C: New test.
* g++.dg/modules/contracts-2_b.C: New test.
* g++.dg/modules/contracts-2_c.C: New test.
* g++.dg/modules/contracts-3_a.C: New test.
* g++.dg/modules/contracts-3_b.C: New test.
* g++.dg/modules/contracts-4_a.C: New test.
* g++.dg/modules/contracts-4_b.C: New test.
* g++.dg/modules/contracts-4_c.C: New test.
* g++.dg/modules/contracts-4_d.C: New test.
* g++.dg/modules/contracts-tpl-friend-1_a.C: New test.
* g++.dg/modules/contracts-tpl-friend-1_b.C: New test.
* g++.dg/contracts/backtrace_handler/Makefile: New test.
* g++.dg/contracts/backtrace_handler/README: New test.
* g++.dg/contracts/backtrace_handler/example_out.txt: New test.
* g++.dg/contracts/backtrace_handler/example_pretty.txt: New test.
* g++.dg/contracts/backtrace_handler/prettytrace.sh: New test.
* g++.dg/contracts/except_preload_handler/Makefile: New test.
* g++.dg/contracts/except_preload_handler/README: New test.
* g++.dg/contracts/except_preload_handler/assert_fail.cpp: New test.
* g++.dg/contracts/except_preload_handler/handle_contract_violation.cpp: New test.
* g++.dg/contracts/noexcept_preload_handler/Makefile: New test.
* g++.dg/contracts/noexcept_preload_handler/README: New test.
* g++.dg/contracts/noexcept_preload_handler/assert_fail.cpp: New test.
* g++.dg/contracts/noexcept_preload_handler/handle_contract_violation.cpp: New test.
* g++.dg/contracts/preload_handler/Makefile: New test.
* g++.dg/contracts/preload_handler/README: New test.
* g++.dg/contracts/preload_handler/assert_fail.cpp: New test.
* g++.dg/contracts/preload_handler/handle_contract_violation.cpp: New test.
* g++.dg/contracts/preload_nocontinue_handler/Makefile: New test.
* g++.dg/contracts/preload_nocontinue_handler/README: New test.
* g++.dg/contracts/preload_nocontinue_handler/assert_fail.cpp: New test.
* g++.dg/contracts/preload_nocontinue_handler/handle_contract_violation.cpp: New test.
* g++.dg/contracts/preload_nocontinue_handler/nocontinue.cpp: New test.
|
|
Code such as:
#include __FILE__
can interact poorly with the *-prefix-map options when cross compiling. In
general you're after to remap filenames for use in target context but the
local paths should be used to find include files at compile time. Ingoring
filename remapping for directives allows avoiding such failures.
Fix this to improve such usage and then document this against file-prefix-map
(referenced by the other *-prefix-map options) to make the behaviour clear
and defined.
libcpp/ChangeLog:
* macro.cc (_cpp_builtin_macro_text): Don't remap filenames within
directives.
gcc/ChangeLog:
* doc/invoke.texi: Document prefix-maps don't affect directives.
|
|
This patch implements C++23 P2448, which lifts more restrictions on the
constexpr keyword. It's effectively going the way of being just a hint
(hello, inline!).
This gist is relatively simple: in C++23, a constexpr function's return
type/parameter type doesn't have to be a literal type; and you can have
a constexpr function for which no invocation satisfies the requirements
of a core constant expression. For example,
void f(int& i); // not constexpr
constexpr void g(int& i) {
f(i); // unconditionally calls a non-constexpr function
}
is now OK, even though there isn't an invocation of 'g' that would be
a constant expression. Maybe 'f' will be made constexpr soon, or maybe
this depends on the version of C++ used, and similar. The patch is
unfortunately not that trivial. The important bit is to use the new
require_potential_rvalue_constant_expression_fncheck in
maybe_save_constexpr_fundef (and where appropriate). It has a new flag
that says that we're checking the body of a constexpr function, and in
that case it's OK to find constructs that aren't a constant expression.
Since it's useful to be able to check for problematic constructs even
in C++23, this patch implements a new warning, -Winvalid-constexpr,
which is a pedwarn turned on by default in C++20 and earlier, and which
can be turned on in C++23 as well, in which case it's an ordinary warning.
This I implemented by using the new function constexpr_error, used in
p_c_e_1 and friends. (In some cases I believe fundef_p will be always
false (= hard error), but it made sense to me to be consistent and use
constexpr_error throughout p_c_e_1.)
While working on this I think I found a bug, see constexpr-nonlit15.C
and <https://gcc.gnu.org/PR107598>. This patch doesn't address that.
This patch includes changes to diagnose the problem if the user doesn't
use -Winvalid-constexpr and calls a constexpr function that in fact isn't
constexpr-ready yet: maybe_save_constexpr_fundef registers the function
if warn_invalid_constexpr is 0 and explain_invalid_constexpr_fn then
gives the diagnostic.
PR c++/106649
gcc/c-family/ChangeLog:
* c-cppbuiltin.cc (c_cpp_builtins): Update value of __cpp_constexpr for
C++23.
* c-opts.cc (c_common_post_options): Set warn_invalid_constexpr
depending on cxx_dialect.
* c.opt (Winvalid-constexpr): New option.
gcc/cp/ChangeLog:
* constexpr.cc (constexpr_error): New function.
(is_valid_constexpr_fn): Use constexpr_error.
(maybe_save_constexpr_fundef): Call
require_potential_rvalue_constant_expression_fncheck rather than
require_potential_rvalue_constant_expression. Register the
function if -Wno-invalid-constexpr was specified.
(explain_invalid_constexpr_fn): Don't return early if a function marked
'constexpr' that isn't actually a constant expression was called.
(non_const_var_error): Add a bool parameter. Use constexpr_error.
(inline_asm_in_constexpr_error): Likewise.
(cxx_eval_constant_expression): Adjust calls to non_const_var_error
and inline_asm_in_constexpr_error.
(potential_constant_expression_1): Add a bool parameter. Use
constexpr_error.
(require_potential_rvalue_constant_expression_fncheck): New function.
* cp-tree.h (require_potential_rvalue_constant_expression_fncheck):
Declare.
* method.cc (struct comp_info): Call
require_potential_rvalue_constant_expression_fncheck rather than
require_potential_rvalue_constant_expression.
gcc/ChangeLog:
* doc/invoke.texi: Document -Winvalid-constexpr.
gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/constexpr-ctor2.C: Expect an error in c++20_down only.
* g++.dg/cpp0x/constexpr-default-ctor.C: Likewise.
* g++.dg/cpp0x/constexpr-diag3.C: Likewise.
* g++.dg/cpp0x/constexpr-ex1.C: Likewise.
* g++.dg/cpp0x/constexpr-friend.C: Likewise.
* g++.dg/cpp0x/constexpr-generated1.C: Likewise.
* g++.dg/cpp0x/constexpr-ice5.C: Likewise.
* g++.dg/cpp0x/constexpr-ice6.C: Likewise.
* g++.dg/cpp0x/constexpr-memfn1.C: Likewise.
* g++.dg/cpp0x/constexpr-neg2.C: Likewise.
* g++.dg/cpp0x/constexpr-non-const-arg.C: Likewise.
* g++.dg/cpp0x/constexpr-reinterpret1.C: Likewise.
* g++.dg/cpp0x/pr65327.C: Likewise.
* g++.dg/cpp1y/constexpr-105050.C: Likewise.
* g++.dg/cpp1y/constexpr-89285-2.C: Likewise.
* g++.dg/cpp1y/constexpr-89285.C: Likewise.
* g++.dg/cpp1y/constexpr-89785-2.C: Likewise.
* g++.dg/cpp1y/constexpr-neg1.C: Likewise.
* g++.dg/cpp1y/constexpr-nsdmi7b.C: Likewise.
* g++.dg/cpp1y/constexpr-throw.C: Likewise.
* g++.dg/cpp23/constexpr-nonlit3.C: Remove dg-error.
* g++.dg/cpp23/constexpr-nonlit6.C: Call the test functions.
* g++.dg/cpp23/feat-cxx2b.C: Adjust the expected value of
__cpp_constexpr.
* g++.dg/cpp2a/consteval3.C: Remove dg-error.
* g++.dg/cpp2a/constexpr-new7.C: Expect an error in c++20_down only.
* g++.dg/cpp2a/constexpr-try5.C: Remove dg-error.
* g++.dg/cpp2a/spaceship-constexpr1.C: Expect an error in c++20_down
only.
* g++.dg/cpp2a/spaceship-eq3.C: Likewise.
* g++.dg/diagnostic/constexpr1.C: Remove dg-error.
* g++.dg/gomp/pr79664.C: Use -Winvalid-constexpr -pedantic-errors.
* g++.dg/ubsan/vptr-4.C: Likewise.
* g++.dg/cpp23/constexpr-nonlit10.C: New test.
* g++.dg/cpp23/constexpr-nonlit11.C: New test.
* g++.dg/cpp23/constexpr-nonlit12.C: New test.
* g++.dg/cpp23/constexpr-nonlit13.C: New test.
* g++.dg/cpp23/constexpr-nonlit14.C: New test.
* g++.dg/cpp23/constexpr-nonlit15.C: New test.
* g++.dg/cpp23/constexpr-nonlit16.C: New test.
* g++.dg/cpp23/constexpr-nonlit8.C: New test.
* g++.dg/cpp23/constexpr-nonlit9.C: New test.
|
|
gcc/ChangeLog:
PR target/107676
* doc/invoke.texi (-mrelax-cmpxchg-loop): Reword description.
|
|
This patch fixes a wrong placed closing bracket in the RISC-V option
list and an unneeded @gol in the PRU option list in invoke.texi.
gcc/ChangeLog:
* doc/invoke.texi: Fix PRU/RISC-V option list formatting.
|