aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-12-29arc: Fix cached to uncached moves.Claudiu Zissulescu
We need an temporary register when moving data from a cached memory to an uncached memory. Fix this issue and add a test for it. gcc/ 2020-12-29 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (prepare_move_operands): Use a temporary registers when we have cached mem-to-uncached mem moves. gcc/testsuite/ 2020-12-29 Vladimir Isaev <isaev@synopsys.com> * gcc.target/arc/uncached-9.c: New test. Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
2020-12-29arc: Don't use predicated vadd2 instructions in mov patterns.Claudiu Zissulescu
Update movdi, movdf and mov vectors not to use predicated vadd2 instructions. vadd2 is used as a "fast" move in these patterns. This fixes a number of failures in dejagnu. gcc/ 2020-12-29 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.md (movdi_insn): Update pattern, no predicated vadd2 usage. (movdf_insn): Likewise. * config/arc/simdext.md (movVEC_insn): Likewise. Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
2020-12-29i386: Rounding functions TLCUros Bizjak
Use copy_to_reg where appropriate, use int_mode_for_mode and fix comment indentation. 2020-12-29 Uroš Bizjak <ubizjak@gmail.com> gcc/ * config/i386/i386-expand.c (ix86_gen_TWO52): Use REAL_MODE_FORMAT to determine number of mantissa bits. Use real_2expN instead of real_ldexp. (ix86_expand_rint): Use copy_to_reg. (ix86_expand_floorceildf_32): Ditto. (ix86_expand_truncdf_32): Ditto. (ix86_expand_rounddf_32): Ditto. (ix86_expand_floorceil): Use copy_to_reg and int_mode_for_mode. (ix86_expand_trunc): Ditto. (ix86_expand_round): Ditto.
2020-12-29Daily bump.GCC Administrator
2020-12-28libgomp: Avoid bad "up" link in libgomp docsGerald Pfeifer
The libgomp texinfo docs lead to an invalid "up" link on the Top node, which we can avoid similarly to the Top link in the main GCC manual. 2020-12-28 Sandra Loosemore <sandra@codesourcery.com> libgomp/ * libgomp.texi (Top): Avoid bad "up" link.
2020-12-28doc: Remove HSAIL from Language StandardsGerald Pfeifer
Support for HSAIL has been deprecated with GCC 10 and their web server has been down for weeks. gcc/ 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com> * doc/standards.texi (HSAIL): Remove section.
2020-12-28i386: Fix __builtin_rint with FE_DOWNWARD rounding direction [PR96793]Uros Bizjak
x86_expand_rint expander uses x86_sse_copysign_to_positive, which is unable to change the sign from - to +. When FE_DOWNWARD rounding direction is in effect, the expanded sequence that involves subtraction can trigger x - x = -0.0 special rule. x86_sse_copysign_to_positive fails to change the sign of the intermediate value, assumed to always be positive, back to positive. The patch adds one extra fabs that strips the sign from the intermediate value when flag_rounding_math is in effect. 2020-12-28 Uroš Bizjak <ubizjak@gmail.com> gcc/ PR target/96793 * config/i386/i386-expand.c (ix86_expand_rint): Remove the sign of the intermediate value for flag_rounding_math. gcc/testsuite/ PR target/96793 * gcc.target/i386/pr96793-2.c: New test.
2020-12-28i386: Use existing temporary register in rounding functionsUros Bizjak
It is possible to avoid the call to force_reg and use existing temporary register in ix86_expand_trunc, ix86_expand_round and ix86_expand_rounddf_32 expanders. 2020-12-28 Uroš Bizjak <ubizjak@gmail.com> gcc/ * config/i386/i386-expand.c (ix86_expand_trunc): Use existing temporary register to avoid a call to force_reg.
2020-12-28Fix standard name for zero/sign extend expandersHongyu Wang
gcc/ChangeLog: * config/i386/i386.md (optab): New code attr. * config/i386/sse.md (<code>v32qiv32hi2): Rename to ... (<optab>v32qiv32hi2) ... this. (<code>v16qiv16hi2): Likewise. (<code>v8qiv8hi2): Likewise. (<code>v16qiv16si2): Likewise. (<code>v8qiv8si2): Likewise. (<code>v4qiv4si2): Likewise. (<code>v16hiv16si2): Likewise. (<code>v8hiv8si2): Likewise. (<code>v4hiv4si2): Likewise. (<code>v8qiv8di2): Likewise. (<code>v4qiv4di2): Likewise. (<code>v2qiv2di2): Likewise. (<code>v8hiv8di2): Likewise. (<code>v4hiv4di2): Likewise. (<code>v2hiv2di2): Likewise. (<code>v8siv8di2): Likewise. (<code>v4siv4di2): Likewise. (<code>v2siv2di2): Likewise. gcc/testsuite/ChangeLog: * gcc.target/i386/pr92658-avx2-2.c: New test. * gcc.target/i386/pr92658-avx512bw-2.c: Likewise. * gcc.target/i386/pr92658-sse4-2.c: Likewise.
2020-12-28Daily bump.GCC Administrator
2020-12-27doc: New source for "Memory Model for Static Analysis" paperGerald Pfeifer
gcc: 2020-12-27 Gerald Pfeifer <gerald@pfeifer.com> * doc/analyzer.texi (Analyzer Internals): Find a new source for the "A Memory Model for Static Analysis of C Programs" paper.
2020-12-27libstdc++: Update link to Arm ABIGerald Pfeifer
libstdc++-v3: 2020-12-27 Gerald Pfeifer <gerald@pfeifer.com> * doc/xml/manual/abi.xml: Update link to Arm ABI. * doc/html/manual/abi.html: Regenerate.
2020-12-27Fix regressions for iq2000-elf after recent changesJeff Law
gcc/testsuite * gcc.dg/tree-ssa/asm-2.c: Use different register for iq2000. * gcc.dg/tree-ssa/asm-3.c: Likewise.
2020-12-27Fortran: Fix some select rank issues [PR97694 and 97723].Paul Thomas
2020-12-27 Paul Thomas <pault@gcc.gnu.org> gcc/fortran PR fortran/97694 PR fortran/97723 * check.c (allocatable_check): Select rank temporaries are permitted even though they are treated as associate variables. * resolve.c (gfc_resolve_code): Break on select rank as well as select type so that the block os resolved. * trans-stmt.c (trans_associate_var): Class associate variables that are optional dummies must use the backend_decl. gcc/testsuite/ PR fortran/97694 PR fortran/97723 * gfortran.dg/select_rank_5.f90: New test.
2020-12-27libstdc++: Move Valgrind references to httpsGerald Pfeifer
libstdc++-v3: 2020-12-27 Gerald Pfeifer <gerald@pfeifer.com> * doc/xml/manual/debug.xml: Move Valgrind references to https. * doc/html/manual/debug.html: Regenerate.
2020-12-27Daily bump.GCC Administrator
2020-12-26Objective-C++ : Fix up testcase EOF diagnostics.Iain Sandoe
Some Objective-C++ testcases need modification in reponse to the solution to PR 96045. gcc/testsuite/ChangeLog: PR c++/96045 * obj-c++.dg/property/property-neg-6.mm: Adjust EOF diagnostic location. * obj-c++.dg/syntax-error-10.mm: Likewise. * obj-c++.dg/syntax-error-8.mm: Likewise. * obj-c++.dg/syntax-error-9.mm: Likewise.
2020-12-26Fortran: Correction to recent patch in light of comments [PR98022].Paul Thomas
2020-12-26 Paul Thomas <pault@gcc.gnu.org> gcc/fortran PR fortran/98022 * data.c (gfc_assign_data_value): Throw an error for inquiry references. Follow with corrected code that would provide the expected result and provides clean error recovery. gcc/testsuite/ PR fortran/98022 * gfortran.dg/data_inquiry_ref.f90: Change to dg-compile and add errors for inquiry references.
2020-12-26Fix failures with -m32 and some memory leaks.Paul Thomas
2020-12-23 Paul Thomas <pault@gcc.gnu.org> gcc/fortran PR fortran/83118 * trans-array.c (gfc_alloc_allocatable_for_assignment): Make sure that class expressions are captured for dummy arguments by use of gfc_get_class_from_gfc_expr otherwise the wrong vptr is used. * trans-expr.c (gfc_get_class_from_gfc_expr): New function. (gfc_get_class_from_expr): If a constant expression is encountered, return NULL_TREE; (gfc_trans_assignment_1): Deallocate rhs allocatable components after passing derived type function results to class lhs. * trans.h : Add prototype for gfc_get_class_from_gfc_expr.
2020-12-26libstdc++: Update link to Intel/GNU compatibility paperGerald Pfeifer
libstdc++-v3: 2020-12-26 Gerald Pfeifer <gerald@pfeifer.com> * doc/xml/manual/abi.xml: Update link to Intel's compatibility with GNU compilers document. * doc/html/manual/abi.html: Regenerate.
2020-12-26Daily bump.GCC Administrator
2020-12-25libstdc++: Update link to Java docsGerald Pfeifer
libstdc++-v3: 2020-12-25 Gerald Pfeifer <gerald@pfeifer.com> * doc/xml/manual/messages.xml: Update link to Java docs. * doc/html/manual/facets.html: Ditto.
2020-12-25doc: Fix reference to libcodyGerald Pfeifer
github.com requests (via 301 Moved Permanently) to use gibhub.com, not www.github.com. gcc/ChangeLog: 2020-12-25 Gerald Pfeifer <gerald@pfeifer.com> * doc/invoke.texi (C++ Module Mapper): Fix reference to libcody.
2020-12-25PR93685 - ICE in gfc_constructor_append_expr, at fortran/constructor.c:135Harald Anlauf
Fix handling of F2018 enhancements to DATA statements that allows initialization of pointer components to derived types, and adjust error handling for the CHARACTER case. gcc/fortran/ChangeLog: * data.c (gfc_assign_data_value): Restrict use of create_character_initializer to constant initializers. * trans-expr.c (gfc_conv_initializer): Ensure that character initializer is constant, otherwise fall through to get the same error handling as for non-character cases. gcc/testsuite/ChangeLog: * gfortran.dg/pr93685_1.f90: New test. * gfortran.dg/pr93685_2.f90: New test.
2020-12-25libstdc++: Convert three doxygen.nl links to httpsGerald Pfeifer
libstdc++-v3: 2020-12-25 Gerald Pfeifer <gerald@pfeifer.com> * doc/xml/manual/documentation_hacking.xml: Convert three links to doxygen.nl to https. * doc/html/manual/documentation_hacking.html: Regenerate.
2020-12-25Daily bump.GCC Administrator
2020-12-24C++ : Add the -stdlib= option.Iain Sandoe
This option allows the user to specifiy alternate C++ runtime libraries, for example when a platform uses libc++ as the installed C++ runtime. We introduce the command line option: -stdlib= which is the user-facing mechanism to select the C++ runtime to be used when compiling and linking code. This is the same option spelling as that used by clang to allow the use of libstdc++. The availability (and thus function) of the option are a configure-time choice using the configuration control: --with-gxx-libcxx-include-dir= Specification of the path for the libc++ headers, enables the -stdlib= option (using the path as given), default values are set when the path is unconfigured. If --with-gxx-libcxx-include-dir is given together with --with-sysroot=, then we test to see if the include path starts with the sysroot and, if so, record the sysroot-relative component as the local path. At runtime, we prepend the sysroot that is actually active. At link time, we use the C++ runtime in force and (if that is libc++) also append the libc++abi ABI library. As for other cases, if a target sets the name pointer for the ABI library to NULL the G++ driver will omit it from the link line. gcc/ChangeLog: * configure.ac: Add gxx-libcxx-include-dir handled in the same way as the regular cxx header directory. * Makefile.in: Regenerated. * config.in: Likewise. * configure: Likewise. * cppdefault.c: Pick up libc++ headers if the option is enabled. * cppdefault.h (struct default_include): Amend comments to reflect the extended use of the cplusplus field. * incpath.c (add_standard_paths): Allow for multiple c++ header include path variants. * doc/invoke.texi: Document the -stdlib= option. gcc/c-family/ChangeLog: * c.opt: Add -stdlib= option and enumerations for libstdc++ and libc++. gcc/cp/ChangeLog: * g++spec.c (LIBCXX, LIBCXX_PROFILE, LIBCXX_STATIC): New. (LIBCXXABI, LIBCXXABI_PROFILE, LIBCXXABI_STATIC): New. (enum stdcxxlib_kind): New. (lang_specific_driver): Allow selection amongst multiple c++ runtime libraries.
2020-12-24RISC-V: Fix python3 compatibility for multilib-generatorKito Cheng
The subprocess return string is raw bytes in python3, it must decode before used as string, verifed with python2 and python3. gcc/ChangeLog: * config/riscv/multilib-generator (arch_canonicalize): Call decode for the subprocess return value.
2020-12-23compiler: parenthesize channel type strings if necessaryIan Lance Taylor
Avoid the ambiguity between "chan <- (chan int)" and "chan (<- chan int)". This parenthesizes the same way as the gc compiler. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/279961
2020-12-24Daily bump.GCC Administrator
2020-12-23PR middle-end/98160 - ICE in warn_dealloc_offset on member placement new and ↵Martin Sebor
delete gcc/ChangeLog: PR middle-end/98160 * builtins.c (warn_dealloc_offset): Avoid assuming calls are made through declared functions and not pointers. gcc/testsuite/ChangeLog: PR middle-end/98160 * g++.dg/warn/pr98160.C: New test.
2020-12-23PR c++/98413 - ICE on placement new and member pointerMartin Sebor
gcc/ChangeLog: PR c++/98413 * builtins.c (get_offset_range): Avoid non-integers/-pointers. gcc/testsuite/ChangeLog: PR c++/98413 * g++.dg/warn/pr98413.C: New test.
2020-12-23Account for VxWorks headers in libstdc++ test on namesOlivier Hainque
Undefine various macros unexpectedly defined by VxWorks headers. for libstdc++-v3/ChangeLog * testsuite/17_intro/names.cc: Account for VxWorks headers.
2020-12-23mark some tests in gcc.target/arm as requiring "fpic" supportJoel Brobecker
Require effective target fpic support in tests using pic flags. for gcc/testsuite/ChangeLog * gcc.target/arm/data-rel-1.c: Require "fpic" support. * gcc.target/arm/data-rel-2.c: Likewise. * gcc.target/arm/data-rel-3.c: Ditto. * gcc.target/arm/pr44788.c: Ditto. * gcc.target/arm/pr52006.c: Ditto. * gcc.target/arm/pr59858.c: Ditto. * gcc.target/arm/tlscall.c: Ditto. * gcc.target/arm/require-pic-register-loc.c: Ditto. Adjust line numbers.
2020-12-23c++: EOF location [PR 96045]Nathan Sidwell
Setting the EOF token location to be the start of a line just after the ending newline is not most helpful. While that location is probably the right place to report preprocessing and lexing issues, when parsing, the location just after the last token is better. That way we get to point at some actual text. Setting the location from the previous token has the advantage over just setting the location to be the end of the final line, in that any ending comments do not get considered, which I think is better. PR c++/96045 gcc/cp/ * parser.c (cp_lexer_new_main): Adjust EOF token location. gcc/testsuite/ * g++.dg/diagnostic/pr96045-1.C: New. * g++.dg/diagnostic/pr96045-2.C: New. * g++.dg/diagnostic/pr96045-3.C: New. * c-c++-common/goacc/pr79428-1.c: Adjust EOF diagnostic location. * c-c++-common/gomp/pr79428-2.c: Likewise * c-c++-common/raw-string-6.c: Likewise * g++.dg/cpp0x/decltype63.C: Likewise * g++.dg/cpp0x/gen-attrs-64.C: Likewise * g++.dg/cpp0x/pr68726.C: Likewise * g++.dg/cpp0x/pr78341.C: Likewise * g++.dg/cpp1y/pr65202.C: Likewise * g++.dg/cpp1y/pr65340.C: Likewise * g++.dg/cpp1y/pr68578.C: Likewise * g++.dg/cpp1z/class-deduction44.C: Likewise * g++.dg/diagnostic/unclosed-extern-c.C: Likewise * g++.dg/diagnostic/unclosed-function.C: Likewise * g++.dg/diagnostic/unclosed-namespace.C: Likewise * g++.dg/diagnostic/unclosed-struct.C: Likewise * g++.dg/ext/pr84598.C: Likewise * g++.dg/other/switch4.C: Likewise * g++.dg/parse/attr4.C: Likewise * g++.dg/parse/cond4.C: Likewise * g++.dg/parse/crash10.C: Likewise * g++.dg/parse/crash18.C: Likewise * g++.dg/parse/crash27.C: Likewise * g++.dg/parse/crash34.C: Likewise * g++.dg/parse/crash35.C: Likewise * g++.dg/parse/crash52.C: Likewise * g++.dg/parse/crash59.C: Likewise * g++.dg/parse/crash61.C: Likewise * g++.dg/parse/crash67.C: Likewise * g++.dg/parse/error14.C: Likewise * g++.dg/parse/error56.C: Likewise * g++.dg/parse/invalid1.C: Likewise * g++.dg/parse/parameter-declaration-1.C: Likewise * g++.dg/parse/parser-pr28152-2.C: Likewise * g++.dg/parse/parser-pr28152.C: Likewise * g++.dg/parse/pr68722.C: Likewise * g++.dg/parse/pr96258.C: Likewise * g++.dg/pr46852.C: Likewise * g++.dg/pr46868.C: Likewise * g++.dg/template/crash115.C: Likewise * g++.dg/template/crash43.C: Likewise * g++.dg/template/crash90.C: Likewise * g++.dg/template/error-recovery1.C: Likewise * g++.dg/template/error57.C: Likewise * g++.old-deja/g++.other/crash31.C: Likewise
2020-12-23c++: Fix initializing empty base from prvalue [PR97597]Jason Merrill
unsafe_return_slot_p wasn't recognizing an empty base as potentially-overlapping, which it definitely is. The change to build_base_path is to make the virtual conversion also recognized by is_empty_base_ref; unsafe_return_slot_p doesn't to handle virtual conversions, but hypothetical future callers might. gcc/cp/ChangeLog: PR c++/97597 * class.c (is_empty_base_ref): New. (build_base_path): Add NOP_EXPR after offset. * cp-tree.h (is_empty_base_ref): Declare it. * call.c (unsafe_return_slot_p): Call it. gcc/testsuite/ChangeLog: PR c++/97597 * g++.dg/init/empty3.C: New test.
2020-12-23compiler: nil-checked pointers and index expressions can trapIan Lance Taylor
The compiler was treating indirections through pointers that had been explicitly checked against nil and slice and string index expressions as non-trapping memory references. That is true for ordinary Go programs, but it isn't true if the programs construct their own memory addresses. In particular it isn't true for the kinds of programs that want to use runtime.SetPanicOnFault. The effect of this will be slightly larger binaries, due to additional exception information, and perhaps slightly less optimization. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/279960
2020-12-23c++: Improve testcase [PR98332]Jason Merrill
gcc/testsuite/ChangeLog: * g++.dg/cpp0x/constexpr-overflow3.C: Use INT_MAX.
2020-12-23c++: Fix up floating point complex handling in build_zero_init_1 [PR98353]Jakub Jelinek
While the gimplifier patch I've just committed fixed an ICE, in some cases like on the committed testcase cp folding doesn't happen after build_zero_init_1 because it is called already during gimplification. For the scalar types, if we want to use convert, the problem with complex floats is that it returns a COMPLEX_EXPR with FLOAT_EXPR arguments which have INTEGER_CST 0 as argument. As fold isn't recursive, it doesn't do anything in that case, we need to first fold those FLOAT_EXPRs to REAL_CST 0.0 and only afterwards the COMPLEX_EXPR can be folded into COMPLEX_CST with 0.0 arguments. This patch instead just uses build_zero_cst that creates the zero constant for any scalar types (and more) directly, instead of going through multiple hops. 2020-12-23 Jakub Jelinek <jakub@redhat.com> PR c++/98353 * init.c (build_zero_init_1): Use build_zero_cst for SCALAR_TYPE_P zero initializers.
2020-12-23c++: Fix constexpr array ICE [PR98332]Jason Merrill
The element initializer was non-constant, so its CONSTRUCTOR element ended up NULL, so unshare_constructor crashed trying to look at it. This patch fixes this in two places: First, by returning when we see a non-constant initializer; second, by not crashing on NULL. gcc/cp/ChangeLog: PR c++/98332 * constexpr.c (unshare_constructor): Check for NULL. (cxx_eval_vec_init_1): Always exit early if non-constant. gcc/testsuite/ChangeLog: PR c++/98332 * g++.dg/cpp0x/constexpr-overflow3.C: New test.
2020-12-23Darwin : Adjust handling of MACOSX_DEPLOYMENT_TARGET for macOS 11.Iain Sandoe
The shift to macOS version 11 also means that '11' without any following '.x' is accepted as a valid version number. This adjusts the validation code to accept this and map it to 11.0.0 which matches what the clang toolchain appears to do. gcc/ChangeLog: * config/darwin-driver.c (validate_macosx_version_min): Allow MACOSX_DEPLOYMENT_TARGET=11. (darwin_default_min_version): Adjust warning spelling to avoid an apostrophe.
2020-12-23compiler: remove references to slicecopy and slicestringcopyIan Lance Taylor
The only calls to the runtime functions were removed in CL 170005. The slicestringcopy function will be removed in the Go 1.16beta1 release. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/279932
2020-12-23d: Force TYPE_MODE of classes and non-POD structs as BLKmodeIain Buclaw
Without this being forced, the optimizer could still make decisions that require objects of the non-POD types to need a temporary, which would result in an ICE during the expand to RTL passes. gcc/d/ChangeLog: PR d/98427 * types.cc (TypeVisitor::visit (TypeStruct *)): Set TYPE_MODE of all non-trivial types as BLKmode. (TypeVisitor::visit (TypeClass *)): Likewise. gcc/testsuite/ChangeLog: PR d/98427 * gdc.dg/pr98427.d: New test.
2020-12-23libcody: Remove testsuite [PR 98318]Nathan Sidwell
libcody's testsuite is not very portable, and is testing a host library, so will do weird things on cross compiling, I think. Let's just drop it. libcody/ * Makefile.in (LDFLAGS): Drop -L.. * tests/01-serialize/connect.cc: Delete. * tests/01-serialize/decoder.cc: Delete. * tests/01-serialize/encoder.cc: Delete. * tests/02-comms/client-1.cc: Delete. * tests/02-comms/pivot-1.cc: Delete. * tests/02-comms/server-1.cc: Delete. * tests/Makesub.in: Delete. * tests/jouster: Delete.
2020-12-23i386: Fix __builtin_trunc with FE_DOWNWARD rounding direction [PR96793]Uros Bizjak
x86_expand_truncdf_32 expander uses x86_sse_copysign_to_positive, which is unable to change the sign from - to +. When FE_DOWNWARD rounding direction is in effect, the expanded sequence that involves subtraction can trigger x - x = -0.0 special rule. x86_sse_copysign_to_positive fails to change the sign of the intermediate value, assumed to always be positive, back to positive. The patch adds one extra fabs that strips the sign from the intermediate value when flag_rounding_math is in effect. 2020-12-23 Uroš Bizjak <ubizjak@gmail.com> gcc/ PR target/96793 * config/i386/i386-expand.c (ix86_expand_truncdf_32): Remove the sign of the intermediate value for flag_rounding_math. gcc/testsuite/ PR target/96793 * gcc.target/i386/pr96793-1.c: New test.
2020-12-23c++tools: Fix PIE [PR 98324]Nathan Sidwell
This adds --enable-default-pie support to c++tools, so that the sample server is build -fPIE if requested. PR bootstrap/98324 c++tools/ * Makefile.in: Add FLAGPIE. * configure.ac: Add --enable-default-pie support. * configure: Rebuilt.
2020-12-23Daily bump.GCC Administrator
2020-12-22compiler: initialize saw_send_stmt localsIan Lance Taylor
The C++ compiler wasn't warning because we take their address. Fixes golang/go#43252 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/279752
2020-12-22runtime: eliminate scase.kind fieldIan Lance Taylor
This is the gofrontend version of https://golang.org/cl/245125. Original CL description: Currently, we include a "kind" field on scase to distinguish the three kinds of cases in a select statement: sends, receives, and defaults. This commit removes by kind field by instead arranging for the compiler to always place sends before receives, and to provide their counts separately. It also passes an explicit "block bool" parameter to avoid needing to include a default case in the array. It's safe to shuffle cases like this because the runtime will randomize the order they're polled in anyway. For golang/go#40410. This is being brought over to gofrontend as a step toward upgrading to Go1.16beta1. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/279735
2020-12-22testsuite: C++ module testsNathan Sidwell
This adds most of the modules tests. I do not include the tests that excercise system & C++ library header files. Those will be later. gcc/testsuite/ * g++.dg/modules/access-1_a.C: New.: New. * g++.dg/modules/access-1_b.C: New. * g++.dg/modules/access-1_c.C: New. * g++.dg/modules/adhoc-1_a.C: New. * g++.dg/modules/adhoc-1_b.C: New. * g++.dg/modules/adl-1_a.C: New. * g++.dg/modules/adl-1_b.C: New. * g++.dg/modules/adl-1_c.C: New. * g++.dg/modules/adl-2_a.C: New. * g++.dg/modules/adl-2_b.C: New. * g++.dg/modules/adl-2_c.C: New. * g++.dg/modules/adl-3_a.C: New. * g++.dg/modules/adl-3_b.C: New. * g++.dg/modules/adl-3_c.C: New. * g++.dg/modules/adl-4_a.C: New. * g++.dg/modules/adl-4_b.C: New. * g++.dg/modules/adl-5_a.c: New. * g++.dg/modules/adl-5_b.C: New. * g++.dg/modules/adl-5_c.C: New. * g++.dg/modules/adl-5_d.C: New. * g++.dg/modules/alias-1_a.H: New. * g++.dg/modules/alias-1_b.C: New. * g++.dg/modules/alias-1_c.C: New. * g++.dg/modules/alias-1_d.C: New. * g++.dg/modules/alias-1_e.C: New. * g++.dg/modules/alias-1_f.C: New. * g++.dg/modules/alias-2_a.H: New. * g++.dg/modules/alias-2_b.C: New. * g++.dg/modules/align-type-1_a.C: New. * g++.dg/modules/align-type-1_b.C: New. * g++.dg/modules/ambig-1_a.C: New. * g++.dg/modules/ambig-1_b.C: New. * g++.dg/modules/anon-1_a.C: New. * g++.dg/modules/anon-1_b.C: New. * g++.dg/modules/anon-1_c.C: New. * g++.dg/modules/anon-2.h: New. * g++.dg/modules/anon-2_a.H: New. * g++.dg/modules/anon-2_b.C: New. * g++.dg/modules/atom-decl-0_a.C: New. * g++.dg/modules/atom-decl-0_b.C: New. * g++.dg/modules/atom-decl-0_c.C: New. * g++.dg/modules/atom-decl-2.C: New. * g++.dg/modules/atom-decl-3.C: New. * g++.dg/modules/atom-pragma-1.C: New. * g++.dg/modules/atom-pragma-3.C: New. * g++.dg/modules/atom-preamble-1.C: New. * g++.dg/modules/atom-preamble-2_a.C: New. * g++.dg/modules/atom-preamble-2_b.C: New. * g++.dg/modules/atom-preamble-2_c.C: New. * g++.dg/modules/atom-preamble-2_d.C: New. * g++.dg/modules/atom-preamble-2_e.C: New. * g++.dg/modules/atom-preamble-2_f.C: New. * g++.dg/modules/atom-preamble-3.C: New. * g++.dg/modules/atom-preamble-4.C: New. * g++.dg/modules/auto-1.h: New. * g++.dg/modules/auto-1_a.H: New. * g++.dg/modules/auto-1_b.C: New. * g++.dg/modules/auto-2.h: New. * g++.dg/modules/auto-2_a.H: New. * g++.dg/modules/auto-2_b.C: New. * g++.dg/modules/bad-mapper-1.C: New. * g++.dg/modules/bad-mapper-2.C: New. * g++.dg/modules/bad-mapper-3.C: New. * g++.dg/modules/ben-1.map: New. * g++.dg/modules/ben-1_a.C: New. * g++.dg/modules/ben-1_b.C: New. * g++.dg/modules/bfield-1_a.C: New. * g++.dg/modules/bfield-1_b.C: New. * g++.dg/modules/bfield-2_a.C: New. * g++.dg/modules/bfield-2_b.C: New. * g++.dg/modules/bool-1.h: New. * g++.dg/modules/bool-1_a.H: New. * g++.dg/modules/bool-1_b.H: New. * g++.dg/modules/bool-1_c.C: New. * g++.dg/modules/bug-1_a.C: New. * g++.dg/modules/bug-1_b.C: New. * g++.dg/modules/builtin-1_a.C: New. * g++.dg/modules/builtin-1_b.C: New. * g++.dg/modules/builtin-2.C: New. * g++.dg/modules/builtin-3_b.C: New. * g++.dg/modules/builtin-4_a.H: New. * g++.dg/modules/builtin-4_b.C: New. * g++.dg/modules/builtin-5_a.H: New. * g++.dg/modules/builtin-5_b.C: New. * g++.dg/modules/builtin-6_a.H: New. * g++.dg/modules/builtin-6_b.C: New. * g++.dg/modules/builtin-7_a.H: New. * g++.dg/modules/builtin-7_b.C: New. * g++.dg/modules/by-name-1.C: New. * g++.dg/modules/cexpr-1_a.C: New. * g++.dg/modules/cexpr-1_b.C: New. * g++.dg/modules/cexpr-2_a.C: New. * g++.dg/modules/cexpr-2_b.C: New. * g++.dg/modules/circ-1_a.C: New. * g++.dg/modules/circ-1_b.C: New. * g++.dg/modules/circ-1_c.C: New. * g++.dg/modules/circ-1_d.C: New. * g++.dg/modules/class-1_a.C: New. * g++.dg/modules/class-1_b.C: New. * g++.dg/modules/class-1_c.C: New. * g++.dg/modules/class-2_a.C: New. * g++.dg/modules/class-2_b.C: New. * g++.dg/modules/class-3_a.C: New. * g++.dg/modules/class-3_b.C: New. * g++.dg/modules/class-3_c.C: New. * g++.dg/modules/class-3_d.C: New. * g++.dg/modules/class-4_a.C: New. * g++.dg/modules/class-4_b.C: New. * g++.dg/modules/class-5_a.C: New. * g++.dg/modules/class-5_b.C: New. * g++.dg/modules/class-5_c.C: New. * g++.dg/modules/class-6_a.C: New. * g++.dg/modules/class-6_b.C: New. * g++.dg/modules/class-6_c.C: New. * g++.dg/modules/class-7_a.C: New. * g++.dg/modules/class-7_b.C: New. * g++.dg/modules/class-7_c.C: New. * g++.dg/modules/class-8_a.C: New. * g++.dg/modules/class-8_b.C: New. * g++.dg/modules/clone-1_a.C: New. * g++.dg/modules/clone-1_b.C: New. * g++.dg/modules/concept-1_a.C: New. * g++.dg/modules/concept-1_b.C: New. * g++.dg/modules/concept-2_a.C: New. * g++.dg/modules/concept-2_b.C: New. * g++.dg/modules/concept-3_a.C: New. * g++.dg/modules/concept-3_b.C: New. * g++.dg/modules/concept-4.H: New. * g++.dg/modules/concept-5.h: New. * g++.dg/modules/concept-5_a.H: New. * g++.dg/modules/concept-5_b.C: New. * g++.dg/modules/concept-6.h: New. * g++.dg/modules/concept-6_a.H: New. * g++.dg/modules/concept-6_b.C: New. * g++.dg/modules/constrained-partial-1_a.C: New. * g++.dg/modules/constrained-partial-1_b.C: New. * g++.dg/modules/convop-1_a.C: New. * g++.dg/modules/convop-1_b.C: New. * g++.dg/modules/cpp-1.C: New. * g++.dg/modules/cpp-2_a.H: New. * g++.dg/modules/cpp-2_b.H: New. * g++.dg/modules/cpp-2_c.C: New. * g++.dg/modules/cpp-3.C: New. * g++.dg/modules/cpp-4.C: New. * g++.dg/modules/cpp-4.h: New. * g++.dg/modules/cpp-5_a.H: New. * g++.dg/modules/cpp-5_b.C: New. * g++.dg/modules/cpp-5_c.C: New. * g++.dg/modules/cpp-6_a.H: New. * g++.dg/modules/cpp-6_b.H: New. * g++.dg/modules/cpp-6_c.C: New. * g++.dg/modules/debug-1_a.C: New. * g++.dg/modules/debug-1_b.C: New. * g++.dg/modules/decomp-1_a.C: New. * g++.dg/modules/decomp-1_b.C: New. * g++.dg/modules/deferred-1.h: New. * g++.dg/modules/deferred-1_a.H: New. * g++.dg/modules/deferred-1_b.C: New. * g++.dg/modules/dep-1_a.C: New. * g++.dg/modules/dep-1_b.C: New. * g++.dg/modules/dep-2.C: New. * g++.dg/modules/dep-3.C: New. * g++.dg/modules/dir-only-1.C: New. * g++.dg/modules/dir-only-2_a.H: New. * g++.dg/modules/dir-only-2_b.C: New. * g++.dg/modules/dir-only-3.C: New. * g++.dg/modules/dir-only-4.C: New. * g++.dg/modules/dir-recovery.C: New. * g++.dg/modules/enum-1_a.C: New. * g++.dg/modules/enum-1_b.C: New. * g++.dg/modules/enum-2_a.C: New. * g++.dg/modules/enum-2_b.C: New. * g++.dg/modules/enum-3_a.C: New. * g++.dg/modules/enum-3_b.C: New. * g++.dg/modules/enum-4_a.C: New. * g++.dg/modules/enum-4_b.C: New. * g++.dg/modules/enum-5_a.H: New. * g++.dg/modules/enum-5_b.C: New. * g++.dg/modules/enum-6_a.H: New. * g++.dg/modules/enum-6_b.C: New. * g++.dg/modules/enum-7.C: New. * g++.dg/modules/enum-8_a.H: New. * g++.dg/modules/enum-8_b.H: New. * g++.dg/modules/enum-8_c.C: New. * g++.dg/modules/enum-8_d.C: New. * g++.dg/modules/enum-bad-1_a.H: New. * g++.dg/modules/enum-bad-1_b.C: New. * g++.dg/modules/err-1_a.C: New. * g++.dg/modules/err-1_b.C: New. * g++.dg/modules/err-1_c.C: New. * g++.dg/modules/err-1_d.C: New. * g++.dg/modules/except-1.C: New. * g++.dg/modules/except-2.h: New. * g++.dg/modules/except-2_a.H: New. * g++.dg/modules/except-2_b.C: New. * g++.dg/modules/except-3.h: New. * g++.dg/modules/except-3_a.H: New. * g++.dg/modules/except-3_b.C: New. * g++.dg/modules/exp-xlate-1_a.H: New. * g++.dg/modules/exp-xlate-1_b.C: New. * g++.dg/modules/export-1.C: New. * g++.dg/modules/extern-tpl-1_a.H: New. * g++.dg/modules/extern-tpl-1_b.C: New. * g++.dg/modules/extern-tpl-1_c.C: New. * g++.dg/modules/extern-tpl-2_a.H: New. * g++.dg/modules/extern-tpl-2_b.H: New. * g++.dg/modules/extern-tpl-2_c.C: New. * g++.dg/modules/extern-tpl-2_d.C: New. * g++.dg/modules/flag-1_a.C: New. * g++.dg/modules/flag-1_b.C: New. * g++.dg/modules/fn-inline-1_a.C: New. * g++.dg/modules/fn-inline-1_b.C: New. * g++.dg/modules/fn-inline-1_c.C: New. * g++.dg/modules/freeze-1_a.C: New. * g++.dg/modules/freeze-1_b.C: New. * g++.dg/modules/freeze-1_c.C: New. * g++.dg/modules/freeze-1_d.C: New. * g++.dg/modules/friend-1_a.C: New. * g++.dg/modules/friend-1_b.C: New. * g++.dg/modules/friend-1_c.C: New. * g++.dg/modules/friend-2_a.C: New. * g++.dg/modules/friend-2_b.C: New. * g++.dg/modules/friend-3.C: New. * g++.dg/modules/friend-4_a.C: New. * g++.dg/modules/friend-4_b.C: New. * g++.dg/modules/friend-5_a.C: New. * g++.dg/modules/friend-5_b.C: New. * g++.dg/modules/gc-1_a.C: New. * g++.dg/modules/gc-1_b.C: New. * g++.dg/modules/gc-1_c.C: New. * g++.dg/modules/gc-1_d.C: New. * g++.dg/modules/gc-2.map: New. * g++.dg/modules/gc-2_a.C: New. * g++.dg/modules/global-1_a.C: New. * g++.dg/modules/global-1_b.C: New. * g++.dg/modules/gmf-1_a.C: New. * g++.dg/modules/gmf-1_b.C: New. * g++.dg/modules/gmf-2_a.H: New. * g++.dg/modules/gmf-2_b.C: New. * g++.dg/modules/gmf-2_c.C: New. * g++.dg/modules/gmf-2_d.C: New. * g++.dg/modules/gvar_a.C: New. * g++.dg/modules/gvar_b.C: New. * g++.dg/modules/hdr-1_a.H: New. * g++.dg/modules/hdr-1_b.H: New. * g++.dg/modules/hdr-1_c.C: New. * g++.dg/modules/hdr-init-1_a.H: New. * g++.dg/modules/hdr-init-1_b.H: New. * g++.dg/modules/hdr-init-1_c.C: New. * g++.dg/modules/horcrux-1_a.C: New. * g++.dg/modules/horcrux-1_b.C: New. * g++.dg/modules/ice-1.C: New. * g++.dg/modules/imp-inline-1_a.C: New. * g++.dg/modules/imp-inline-1_b.C: New. * g++.dg/modules/imp-member-1_a.C: New. * g++.dg/modules/imp-member-1_b.C: New. * g++.dg/modules/imp-member-1_c.C: New. * g++.dg/modules/imp-member-1_d.C: New. * g++.dg/modules/imp-member-1_e.C: New. * g++.dg/modules/imp-member-2_a.C: New. * g++.dg/modules/imp-member-2_b.C: New. * g++.dg/modules/imp-member-2_c.C: New. * g++.dg/modules/imp-member-3.H: New. * g++.dg/modules/import-1_a.C: New. * g++.dg/modules/import-1_b.C: New. * g++.dg/modules/import-1_c.C: New. * g++.dg/modules/import-1_d.C: New. * g++.dg/modules/import-1_e.C: New. * g++.dg/modules/import-1_f.C: New. * g++.dg/modules/import-1_g.C: New. * g++.dg/modules/import-2.C: New. * g++.dg/modules/inc-xlate-1.map: New. * g++.dg/modules/inc-xlate-1_a.H: New. * g++.dg/modules/inc-xlate-1_b.H: New. * g++.dg/modules/inc-xlate-1_c.C: New. * g++.dg/modules/inc-xlate-1_e.C: New. * g++.dg/modules/indirect-1_a.C: New. * g++.dg/modules/indirect-1_b.C: New. * g++.dg/modules/indirect-1_c.C: New. * g++.dg/modules/indirect-2_a.C: New. * g++.dg/modules/indirect-2_b.C: New. * g++.dg/modules/indirect-2_c.C: New. * g++.dg/modules/indirect-3_a.C: New. * g++.dg/modules/indirect-3_b.C: New. * g++.dg/modules/indirect-3_c.C: New. * g++.dg/modules/indirect-4_a.C: New. * g++.dg/modules/indirect-4_b.C: New. * g++.dg/modules/indirect-4_c.C: New. * g++.dg/modules/inext-1.H: New. * g++.dg/modules/inh-tmpl-ctor-1.h: New. * g++.dg/modules/inh-tmpl-ctor-1_a.H: New. * g++.dg/modules/inh-tmpl-ctor-1_b.C: New. * g++.dg/modules/init-1_a.C: New. * g++.dg/modules/init-1_b.C: New. * g++.dg/modules/init-2_a.C: New. * g++.dg/modules/init-2_b.C: New. * g++.dg/modules/init-2_c.C: New. * g++.dg/modules/inst-1_a.C: New. * g++.dg/modules/inst-1_b.C: New. * g++.dg/modules/inst-2_a.C: New. * g++.dg/modules/inst-2_b.C: New. * g++.dg/modules/inst-3_a.C: New. * g++.dg/modules/inst-3_b.C: New. * g++.dg/modules/inst-4_a.C: New. * g++.dg/modules/inst-4_b.C: New. * g++.dg/modules/inst-5_a.H: New. * g++.dg/modules/inst-5_b.C: New. * g++.dg/modules/internal-1.C: New. * g++.dg/modules/internal-2_a.H: New. * g++.dg/modules/internal-2_b.H: New. * g++.dg/modules/internal-2_c.C: New. * g++.dg/modules/isalnum.H: New. * g++.dg/modules/keyword-1_a.C: New. * g++.dg/modules/keyword-1_b.C: New. * g++.dg/modules/lambda-1_a.C: New. * g++.dg/modules/lambda-1_b.C: New. * g++.dg/modules/lambda-2.h: New. * g++.dg/modules/lambda-2_a.H: New. * g++.dg/modules/lambda-2_b.C: New. * g++.dg/modules/lambda-2_c.C: New. * g++.dg/modules/lambda-3.h: New. * g++.dg/modules/lambda-3_a.H: New. * g++.dg/modules/lambda-3_b.C: New. * g++.dg/modules/lambda-3_c.C: New. * g++.dg/modules/lambda-4.h: New. * g++.dg/modules/lambda-4_a.H: New. * g++.dg/modules/lambda-4_b.C: New. * g++.dg/modules/lang-1_a.H: New. * g++.dg/modules/lang-1_b.C: New. * g++.dg/modules/lang-1_c.C: New. * g++.dg/modules/lang-2_a.C: New. * g++.dg/modules/lang-2_b.C: New. * g++.dg/modules/late-ret-1.H: New. * g++.dg/modules/late-ret-2_a.H: New. * g++.dg/modules/late-ret-2_b.H: New. * g++.dg/modules/late-ret-2_c.C: New. * g++.dg/modules/late-ret-3_a.H: New. * g++.dg/modules/late-ret-3_b.H: New. * g++.dg/modules/late-ret-3_c.C: New. * g++.dg/modules/lazy-1_a.C: New. * g++.dg/modules/lazy-1_b.C: New. * g++.dg/modules/leg-merge-1_a.H: New. * g++.dg/modules/leg-merge-1_b.H: New. * g++.dg/modules/leg-merge-1_c.C: New. * g++.dg/modules/leg-merge-1_d.C: New. * g++.dg/modules/leg-merge-2_a.H: New. * g++.dg/modules/leg-merge-2_b.H: New. * g++.dg/modules/leg-merge-2_c.C: New. * g++.dg/modules/leg-merge-3_a.H: New. * g++.dg/modules/leg-merge-3_b.H: New. * g++.dg/modules/leg-merge-3_c.C: New. * g++.dg/modules/leg-merge-3_d.C: New. * g++.dg/modules/leg-merge-4_a.H: New. * g++.dg/modules/leg-merge-4_b.H: New. * g++.dg/modules/leg-merge-4_c.C: New. * g++.dg/modules/leg-merge-5_a.H: New. * g++.dg/modules/leg-merge-5_b.H: New. * g++.dg/modules/leg-merge-5_c.C: New. * g++.dg/modules/leg-merge-6_a.H: New. * g++.dg/modules/leg-merge-6_b.H: New. * g++.dg/modules/leg-merge-6_c.C: New. * g++.dg/modules/leg-merge-7_a.H: New. * g++.dg/modules/leg-merge-7_b.H: New. * g++.dg/modules/leg-merge-7_c.C: New. * g++.dg/modules/leg-merge-8_a.H: New. * g++.dg/modules/leg-merge-8_b.H: New. * g++.dg/modules/leg-merge-8_c.C: New. * g++.dg/modules/leg-merge-9_a.H: New. * g++.dg/modules/leg-merge-9_b.H: New. * g++.dg/modules/leg-merge-9_c.C: New. * g++.dg/modules/legacy-1_a.H: New. * g++.dg/modules/legacy-1_b.C: New. * g++.dg/modules/legacy-1_c.C: New. * g++.dg/modules/legacy-2.h: New. * g++.dg/modules/legacy-2.map: New. * g++.dg/modules/legacy-2_a.H: New. * g++.dg/modules/legacy-2_b.H: New. * g++.dg/modules/legacy-2_c.C: New. * g++.dg/modules/legacy-2_d.C: New. * g++.dg/modules/legacy-3.h: New. * g++.dg/modules/legacy-3_a.H: New. * g++.dg/modules/legacy-3_b.H: New. * g++.dg/modules/legacy-3_c.H: New. * g++.dg/modules/legacy-6.map: New. * g++.dg/modules/legacy-6_a.H: New. * g++.dg/modules/legacy-6_b.H: New. * g++.dg/modules/legacy-6_c.C: New. * g++.dg/modules/legacy-6_d.C: New. * g++.dg/modules/legacy-6_e.C: New. * g++.dg/modules/legacy-6_f.C: New. * g++.dg/modules/legacy-7_a.H: New. * g++.dg/modules/legacy-7_b.C: New. * g++.dg/modules/legacy-8_a.H: New. * g++.dg/modules/legacy-8_b.H: New. * g++.dg/modules/legacy-8_c.C: New. * g++.dg/modules/legacy-8_d.C: New. * g++.dg/modules/legacy-8_e.C: New. * g++.dg/modules/libfn-1_a.C: New. * g++.dg/modules/libfn-1_b.C: New. * g++.dg/modules/literals-1_a.C: New. * g++.dg/modules/literals-1_b.C: New. * g++.dg/modules/loc-1_a.C: New. * g++.dg/modules/loc-1_b.C: New. * g++.dg/modules/loc-1_c.C: New. * g++.dg/modules/loc-2_a.C: New. * g++.dg/modules/loc-2_b.C: New. * g++.dg/modules/loc-2_c.C: New. * g++.dg/modules/loc-2_d.C: New. * g++.dg/modules/loc-2_e.C: New. * g++.dg/modules/loc-2_f.C: New. * g++.dg/modules/loc-wrapper-1.h: New. * g++.dg/modules/loc-wrapper-1_a.H: New. * g++.dg/modules/loc-wrapper-1_b.C: New. * g++.dg/modules/local-1_a.C: New. * g++.dg/modules/local-1_b.C: New. * g++.dg/modules/local-extern-1.C: New. * g++.dg/modules/local-extern-2.H: New. * g++.dg/modules/local-struct-1_a.C: New. * g++.dg/modules/local-struct-1_b.C: New. * g++.dg/modules/macloc-1_a.C: New. * g++.dg/modules/macloc-1_b.C: New. * g++.dg/modules/macloc-1_c.C: New. * g++.dg/modules/macloc-1_d.C: New. * g++.dg/modules/macloc-2_a.H: New. * g++.dg/modules/macloc-2_b.C: New. * g++.dg/modules/macro-1_a.H: New. * g++.dg/modules/macro-1_b.C: New. * g++.dg/modules/macro-2_a.H: New. * g++.dg/modules/macro-2_b.H: New. * g++.dg/modules/macro-2_c.H: New. * g++.dg/modules/macro-2_d.C: New. * g++.dg/modules/macro-3_a.H: New. * g++.dg/modules/macro-3_b.H: New. * g++.dg/modules/macro-3_c.C: New. * g++.dg/modules/macro-4_a.H: New. * g++.dg/modules/macro-4_b.H: New. * g++.dg/modules/macro-4_c.H: New. * g++.dg/modules/macro-4_d.C: New. * g++.dg/modules/macro-4_e.C: New. * g++.dg/modules/macro-4_f.C: New. * g++.dg/modules/macro-4_g.C: New. * g++.dg/modules/macro-5_a.H: New. * g++.dg/modules/macro-5_b.H: New. * g++.dg/modules/macro-5_c.C: New. * g++.dg/modules/macro-6_a.H: New. * g++.dg/modules/macro-6_b.C: New. * g++.dg/modules/macro-6_c.C: New. * g++.dg/modules/macro-7_a.C: New. * g++.dg/modules/macro-7_b.C: New. * g++.dg/modules/macro-7_c.C: New. * g++.dg/modules/map-1.map: New. * g++.dg/modules/map-1_a.C: New. * g++.dg/modules/map-1_b.C: New. * g++.dg/modules/map-1_b.map: New. * g++.dg/modules/map-2.C: New. * g++.dg/modules/map-2.map: New. * g++.dg/modules/member-def-1_a.C: New. * g++.dg/modules/member-def-1_b.C: New. * g++.dg/modules/member-def-1_c.C: New. * g++.dg/modules/member-def-1_d.C: New. * g++.dg/modules/member-def-2_a.C: New. * g++.dg/modules/member-def-2_b.C: New. * g++.dg/modules/member-def-2_c.C: New. * g++.dg/modules/member-def-2_d.C: New. * g++.dg/modules/memref-1_a.C: New. * g++.dg/modules/memref-1_b.C: New. * g++.dg/modules/merge-10.h: New. * g++.dg/modules/merge-10_a.H: New. * g++.dg/modules/merge-10_b.C: New. * g++.dg/modules/merge-11.h: New. * g++.dg/modules/merge-11_a.H: New. * g++.dg/modules/merge-11_b.C: New. * g++.dg/modules/merge-12.h: New. * g++.dg/modules/merge-12_a.H: New. * g++.dg/modules/merge-12_b.C: New. * g++.dg/modules/merge-13.h: New. * g++.dg/modules/merge-13_a.H: New. * g++.dg/modules/merge-13_b.C: New. * g++.dg/modules/merge-14.h: New. * g++.dg/modules/merge-14_a.H: New. * g++.dg/modules/merge-14_b.C: New. * g++.dg/modules/merge-15.h: New. * g++.dg/modules/merge-15_a.H: New. * g++.dg/modules/merge-15_b.C: New. * g++.dg/modules/merge-1_a.C: New. * g++.dg/modules/merge-1_b.C: New. * g++.dg/modules/merge-2_a.H: New. * g++.dg/modules/merge-2_b.C: New. * g++.dg/modules/merge-3_a.H: New. * g++.dg/modules/merge-3_b.C: New. * g++.dg/modules/merge-4.h: New. * g++.dg/modules/merge-4_a.H: New. * g++.dg/modules/merge-4_b.C: New. * g++.dg/modules/merge-5.h: New. * g++.dg/modules/merge-5_a.H: New. * g++.dg/modules/merge-5_b.C: New. * g++.dg/modules/merge-6.h: New. * g++.dg/modules/merge-6_a.H: New. * g++.dg/modules/merge-6_b.C: New. * g++.dg/modules/merge-7.h: New. * g++.dg/modules/merge-7_a.H: New. * g++.dg/modules/merge-7_b.C: New. * g++.dg/modules/merge-8.h: New. * g++.dg/modules/merge-8_a.H: New. * g++.dg/modules/merge-8_b.C: New. * g++.dg/modules/merge-9.h: New. * g++.dg/modules/merge-9_a.H: New. * g++.dg/modules/merge-9_b.C: New. * g++.dg/modules/mod-exp-1_a.C: New. * g++.dg/modules/mod-exp-1_b.C: New. * g++.dg/modules/mod-imp-1_a.C: New. * g++.dg/modules/mod-imp-1_b.C: New. * g++.dg/modules/mod-imp-1_c.C: New. * g++.dg/modules/mod-imp-1_d.C: New. * g++.dg/modules/mod-impl-1_a.C: New. * g++.dg/modules/mod-impl-1_b.C: New. * g++.dg/modules/mod-impl-1_c.C: New. * g++.dg/modules/mod-impl-1_d.C: New. * g++.dg/modules/mod-indirect-1_a.C: New. * g++.dg/modules/mod-indirect-1_b.C: New. * g++.dg/modules/mod-indirect-1_c.C: New. * g++.dg/modules/mod-indirect-1_d.C: New. * g++.dg/modules/mod-indirect-1_e.C: New. * g++.dg/modules/mod-stamp-1_a.C: New. * g++.dg/modules/mod-stamp-1_b.C: New. * g++.dg/modules/mod-stamp-1_c.C: New. * g++.dg/modules/mod-stamp-1_d.C: New. * g++.dg/modules/mod-sym-1.C: New. * g++.dg/modules/mod-sym-2.C: New. * g++.dg/modules/mod-sym-3.C: New. * g++.dg/modules/mod-tpl-1_a.C: New. * g++.dg/modules/mod-tpl-1_b.C: New. * g++.dg/modules/mod-tpl-2_a.C: New. * g++.dg/modules/mod-tpl-2_b.C: New. * g++.dg/modules/mutual-friend.ii: New. * g++.dg/modules/namespace-1_a.C: New. * g++.dg/modules/namespace-1_b.C: New. * g++.dg/modules/namespace-1_c.C: New. * g++.dg/modules/namespace-2_a.C: New. * g++.dg/modules/namespace-2_b.C: New. * g++.dg/modules/namespace-3_a.C: New. * g++.dg/modules/namespace-3_b.C: New. * g++.dg/modules/namespace-4_a.C: New. * g++.dg/modules/namespace-4_b.C: New. * g++.dg/modules/namespace-4_c.C: New. * g++.dg/modules/nest-1_a.C: New. * g++.dg/modules/nest-1_b.C: New. * g++.dg/modules/nest-1_c.C: New. * g++.dg/modules/nested-1_a.C: New. * g++.dg/modules/nested-1_b.C: New. * g++.dg/modules/nested-1_c.C: New. * g++.dg/modules/nested-2_a.C: New. * g++.dg/modules/nested-2_b.C: New. * g++.dg/modules/nested-constr-1.h: New. * g++.dg/modules/nested-constr-1_a.H: New. * g++.dg/modules/nested-constr-1_b.C: New. * g++.dg/modules/nested-constr-2_a.C: New. * g++.dg/modules/nested-constr-2_b.C: New. * g++.dg/modules/nested-constr-2_c.C: New. * g++.dg/modules/nodes-1_a.C: New. * g++.dg/modules/nodes-1_b.C: New. * g++.dg/modules/noexcept-1.h: New. * g++.dg/modules/noexcept-1_a.H: New. * g++.dg/modules/noexcept-1_b.C: New. * g++.dg/modules/ns-alias-1_a.C: New. * g++.dg/modules/ns-alias-1_b.C: New. * g++.dg/modules/ns-alias-1_c.C: New. * g++.dg/modules/ns-dir-1_a.C: New. * g++.dg/modules/ns-dir-1_b.C: New. * g++.dg/modules/ns-dup-1_a.C: New. * g++.dg/modules/ns-dup-1_b.C: New. * g++.dg/modules/ns-imp-1_a.C: New. * g++.dg/modules/ns-imp-1_b.C: New. * g++.dg/modules/ns-imp-1_c.C: New. * g++.dg/modules/ns-part-1_a.C: New. * g++.dg/modules/ns-part-1_b.C: New. * g++.dg/modules/ns-part-1_c.C: New. * g++.dg/modules/nsdmi-1_a.C: New. * g++.dg/modules/nsdmi-1_b.C: New. * g++.dg/modules/nsdmi-2.C: New. * g++.dg/modules/omp-1_a.C: New. * g++.dg/modules/omp-1_b.C: New. * g++.dg/modules/omp-1_c.C: New. * g++.dg/modules/omp-2_a.C: New. * g++.dg/modules/omp-2_b.C: New. * g++.dg/modules/only-1.C: New. * g++.dg/modules/only-2.C: New. * g++.dg/modules/only-3.C: New. * g++.dg/modules/operator-1_a.C: New. * g++.dg/modules/operator-1_b.C: New. * g++.dg/modules/p0713-1.C: New. * g++.dg/modules/p0713-2.C: New. * g++.dg/modules/p0713-3.C: New. * g++.dg/modules/part-1_a.C: New. * g++.dg/modules/part-1_b.C: New. * g++.dg/modules/part-1_c.C: New. * g++.dg/modules/part-2_a.C: New. * g++.dg/modules/part-2_b.C: New. * g++.dg/modules/part-2_c.C: New. * g++.dg/modules/part-2_d.C: New. * g++.dg/modules/part-2_e.C: New. * g++.dg/modules/part-3_a.C: New. * g++.dg/modules/part-3_b.C: New. * g++.dg/modules/part-3_c.C: New. * g++.dg/modules/part-3_d.C: New. * g++.dg/modules/part-4_a.C: New. * g++.dg/modules/part-4_b.C: New. * g++.dg/modules/part-4_c.C: New. * g++.dg/modules/part-6_a.C: New. * g++.dg/modules/part-6_b.C: New. * g++.dg/modules/part-6_c.C: New. * g++.dg/modules/part-6_d.C: New. * g++.dg/modules/part-6_e.C: New. * g++.dg/modules/part-7_a.C: New. * g++.dg/modules/part-7_b.C: New. * g++.dg/modules/part-7_c.C: New. * g++.dg/modules/part-hdr-1_a.H: New. * g++.dg/modules/part-hdr-1_b.C: New. * g++.dg/modules/part-hdr-1_c.C: New. * g++.dg/modules/part-mac-1_a.H: New. * g++.dg/modules/part-mac-1_b.C: New. * g++.dg/modules/part-mac-1_c.C: New. * g++.dg/modules/partial-1.h: New. * g++.dg/modules/partial-1_a.H: New. * g++.dg/modules/partial-1_b.C: New. * g++.dg/modules/pmf-1.h: New. * g++.dg/modules/pmf-1_a.H: New. * g++.dg/modules/pmf-1_b.C: New. * g++.dg/modules/pmf-2.h: New. * g++.dg/modules/pmf-2_a.H: New. * g++.dg/modules/pmf-2_b.C: New. * g++.dg/modules/pmp-1_a.C: New. * g++.dg/modules/pmp-1_b.C: New. * g++.dg/modules/pmp-2.C: New. * g++.dg/modules/pmp-3.C: New. * g++.dg/modules/pragma-1_a.H: New. * g++.dg/modules/pragma-1_b.C: New. * g++.dg/modules/predef-1.C: New. * g++.dg/modules/predef-1.h: New. * g++.dg/modules/predef-2.h: New. * g++.dg/modules/predef-2_a.C: New. * g++.dg/modules/predef-2_b.C: New. * g++.dg/modules/preproc-1.C: New. * g++.dg/modules/preproc-2_a.H: New. * g++.dg/modules/preproc-2_b.C: New. * g++.dg/modules/printf-1_a.H: New. * g++.dg/modules/printf-1_b.C: New. * g++.dg/modules/reparent-1_a.C: New. * g++.dg/modules/reparent-1_b.C: New. * g++.dg/modules/reparent-1_c.C: New. * g++.dg/modules/scc-1.C: New. * g++.dg/modules/scc-2.C: New. * g++.dg/modules/shadow-1_a.C: New. * g++.dg/modules/shadow-1_b.C: New. * g++.dg/modules/stat-tpl-1_a.H: New. * g++.dg/modules/static-1_a.C: New. * g++.dg/modules/static-1_b.C: New. * g++.dg/modules/static-1_c.C: New. * g++.dg/modules/std-1_a.C: New. * g++.dg/modules/std-1_b.C: New. * g++.dg/modules/stdns_a.C: New. * g++.dg/modules/stdns_b.C: New. * g++.dg/modules/sv-1.h: New. * g++.dg/modules/sv-1_a.C: New. * g++.dg/modules/sv-1_b.C: New. * g++.dg/modules/sym-subst-1.C: New. * g++.dg/modules/sym-subst-2_a.C: New. * g++.dg/modules/sym-subst-2_b.C: New. * g++.dg/modules/sym-subst-3_a.C: New. * g++.dg/modules/sym-subst-3_b.C: New. * g++.dg/modules/sym-subst-4.C: New. * g++.dg/modules/sym-subst-5.C: New. * g++.dg/modules/sym-subst-6.C: New. * g++.dg/modules/sys/alias-2_a.H: New. * g++.dg/modules/sys/inext-1.H: New. * g++.dg/modules/tdef-1_a.C: New. * g++.dg/modules/tdef-1_b.C: New. * g++.dg/modules/tdef-2_a.C: New. * g++.dg/modules/tdef-2_b.C: New. * g++.dg/modules/tdef-2_c.C: New. * g++.dg/modules/tdef-3_a.C: New. * g++.dg/modules/tdef-3_b.C: New. * g++.dg/modules/tdef-3_c.C: New. * g++.dg/modules/tdef-4_a.C: New. * g++.dg/modules/tdef-4_b.C: New. * g++.dg/modules/tdef-4_c.C: New. * g++.dg/modules/tdef-5_a.C: New. * g++.dg/modules/tdef-5_b.C: New. * g++.dg/modules/tdef-6_a.H: New. * g++.dg/modules/tdef-6_b.C: New. * g++.dg/modules/tdef-7.h: New. * g++.dg/modules/tdef-7_a.H: New. * g++.dg/modules/tdef-7_b.C: New. * g++.dg/modules/tdef-8_a.C: New. * g++.dg/modules/tdef-8_b.C: New. * g++.dg/modules/tdef-inst-1.h: New. * g++.dg/modules/tdef-inst-1_a.C: New. * g++.dg/modules/tdef-inst-1_b.C: New. * g++.dg/modules/thunk-1_a.C: New. * g++.dg/modules/thunk-1_b.C: New. * g++.dg/modules/tmpl-part-req-1.h: New. * g++.dg/modules/tmpl-part-req-1_a.H: New. * g++.dg/modules/tmpl-part-req-1_b.C: New. * g++.dg/modules/tmpl-part-req-2.h: New. * g++.dg/modules/tmpl-part-req-2_a.H: New. * g++.dg/modules/tmpl-part-req-2_b.C: New. * g++.dg/modules/token-1.C: New. * g++.dg/modules/token-2_a.C: New. * g++.dg/modules/token-2_b.C: New. * g++.dg/modules/token-3.C: New. * g++.dg/modules/token-4.C: New. * g++.dg/modules/token-5.C: New. * g++.dg/modules/tpl-alias-1.h: New. * g++.dg/modules/tpl-alias-1_a.H: New. * g++.dg/modules/tpl-alias-1_b.C: New. * g++.dg/modules/tpl-ary-1.h: New. * g++.dg/modules/tpl-ary-1_a.H: New. * g++.dg/modules/tpl-ary-1_b.C: New. * g++.dg/modules/tpl-extern-fn-1_a.H: New. * g++.dg/modules/tpl-extern-fn-1_b.C: New. * g++.dg/modules/tpl-extern-var-1_a.H: New. * g++.dg/modules/tpl-extern-var-1_b.C: New. * g++.dg/modules/tpl-friend-1_a.C: New. * g++.dg/modules/tpl-friend-1_b.C: New. * g++.dg/modules/tpl-friend-2_a.C: New. * g++.dg/modules/tpl-friend-2_b.C: New. * g++.dg/modules/tpl-friend-3_a.C: New. * g++.dg/modules/tpl-friend-3_b.C: New. * g++.dg/modules/tpl-friend-4_a.C: New. * g++.dg/modules/tpl-friend-4_b.C: New. * g++.dg/modules/tpl-friend-5_a.C: New. * g++.dg/modules/tpl-friend-5_b.C: New. * g++.dg/modules/tpl-friend-6_a.C: New. * g++.dg/modules/tpl-friend-6_b.C: New. * g++.dg/modules/tpl-friend-7_a.C: New. * g++.dg/modules/tpl-friend-7_b.C: New. * g++.dg/modules/tpl-friend-merge-1.cc: New. * g++.dg/modules/tpl-friend-merge-1.h: New. * g++.dg/modules/tpl-friend-merge-1_a.H: New. * g++.dg/modules/tpl-friend-merge-1_b.H: New. * g++.dg/modules/tpl-friend-merge-1_c.H: New. * g++.dg/modules/tpl-friend-merge-1_d.C: New. * g++.dg/modules/tpl-friend-merge-1_e.C: New. * g++.dg/modules/tpl-friend-merge-1_f.C: New. * g++.dg/modules/tpl-spec-1_a.C: New. * g++.dg/modules/tpl-spec-1_b.C: New. * g++.dg/modules/tpl-spec-2_a.C: New. * g++.dg/modules/tpl-spec-2_b.C: New. * g++.dg/modules/tpl-spec-2_c.C: New. * g++.dg/modules/tpl-spec-2_d.C: New. * g++.dg/modules/tpl-spec-3_a.C: New. * g++.dg/modules/tpl-spec-3_b.C: New. * g++.dg/modules/tpl-spec-4_a.C: New. * g++.dg/modules/tpl-spec-4_b.C: New. * g++.dg/modules/tpl-spec-5_a.C: New. * g++.dg/modules/tpl-spec-5_b.C: New. * g++.dg/modules/tpl-spec-6_a.C: New. * g++.dg/modules/tpl-spec-6_b.C: New. * g++.dg/modules/tpl-spec-7.C: New. * g++.dg/modules/tpl-tpl-friend-1_a.C: New. * g++.dg/modules/tpl-tpl-friend-1_b.C: New. * g++.dg/modules/tpl-tpl-mem-1_a.C: New. * g++.dg/modules/tpl-tpl-mem-1_b.C: New. * g++.dg/modules/tpl-tpl-merge-1.h: New. * g++.dg/modules/tpl-tpl-merge-1_a.H: New. * g++.dg/modules/tpl-tpl-merge-1_b.C: New. * g++.dg/modules/tpl-tpl-merge-2.h: New. * g++.dg/modules/tpl-tpl-merge-2_a.H: New. * g++.dg/modules/tpl-tpl-merge-2_b.C: New. * g++.dg/modules/tpl-tpl-parm-1_a.H: New. * g++.dg/modules/tpl-tpl-parm-1_b.C: New. * g++.dg/modules/tpl-tpl-parm-2.h: New. * g++.dg/modules/tpl-tpl-parm-2_a.H: New. * g++.dg/modules/tpl-tpl-parm-2_b.C: New. * g++.dg/modules/tplmem-1_a.C: New. * g++.dg/modules/tplmem-1_b.C: New. * g++.dg/modules/tplmem-3_a.C: New. * g++.dg/modules/tplmem-3_b.C: New. * g++.dg/modules/ttp-1_a.C: New. * g++.dg/modules/ttp-1_b.C: New. * g++.dg/modules/ttp-2_a.C: New. * g++.dg/modules/ttp-2_b.C: New. * g++.dg/modules/ttp-3_a.C: New. * g++.dg/modules/ttp-3_b.C: New. * g++.dg/modules/typename-1_a.C: New. * g++.dg/modules/typename-1_b.C: New. * g++.dg/modules/unnamed-1_a.C: New. * g++.dg/modules/unnamed-1_b.C: New. * g++.dg/modules/unnamed-2.C: New. * g++.dg/modules/used-1_a.H: New. * g++.dg/modules/used-1_b.H: New. * g++.dg/modules/used-1_c.C: New. * g++.dg/modules/using-1_a.C: New. * g++.dg/modules/using-1_b.C: New. * g++.dg/modules/using-1_c.C: New. * g++.dg/modules/using-2_a.C: New. * g++.dg/modules/using-2_b.C: New. * g++.dg/modules/using-2_c.C: New. * g++.dg/modules/using-3.C: New. * g++.dg/modules/using-4_a.C: New. * g++.dg/modules/using-4_b.C: New. * g++.dg/modules/using-5_a.C: New. * g++.dg/modules/using-5_b.C: New. * g++.dg/modules/using-6_a.C: New. * g++.dg/modules/using-6_b.C: New. * g++.dg/modules/using-7.C: New. * g++.dg/modules/using-8_a.C: New. * g++.dg/modules/using-8_b.C: New. * g++.dg/modules/using-enum-1_a.H: New. * g++.dg/modules/using-enum-1_b.C: New. * g++.dg/modules/var-1_a.C: New. * g++.dg/modules/var-1_b.C: New. * g++.dg/modules/var-tpl-1_a.C: New. * g++.dg/modules/var-tpl-1_b.C: New. * g++.dg/modules/var-tpl-concept-1.h: New. * g++.dg/modules/var-tpl-concept-1_a.C: New. * g++.dg/modules/var-tpl-concept-1_b.C: New. * g++.dg/modules/virt-1_a.C: New. * g++.dg/modules/virt-1_b.C: New. * g++.dg/modules/virt-2_a.C: New. * g++.dg/modules/virt-2_b.C: New. * g++.dg/modules/virt-2_c.C: New. * g++.dg/modules/vmort-1_a.C: New. * g++.dg/modules/vmort-1_b.C: New. * g++.dg/modules/vmort-2_a.C: New. * g++.dg/modules/vmort-2_b.C: New. * g++.dg/modules/vmort-2_c.C: New. * g++.dg/modules/vtt-1_a.C: New. * g++.dg/modules/vtt-1_b.C: New. * g++.dg/modules/vtt-1_c.C: New. * g++.dg/modules/vtt-2.h: New. * g++.dg/modules/vtt-2_a.H: New. * g++.dg/modules/vtt-2_b.C: New.