aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-12-26Fortran: Correction to recent patch in light of comments [PR98022].Paul Thomas2-32/+61
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 Thomas3-5/+47
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 Pfeifer2-2/+2
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 Administrator5-1/+29
2020-12-25libstdc++: Update link to Java docsGerald Pfeifer2-2/+2
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 Pfeifer1-1/+1
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 Anlauf4-9/+48
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 Pfeifer2-6/+6
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 Administrator4-1/+34
2020-12-24C++ : Add the -stdlib= option.Iain Sandoe10-13/+216
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 Cheng1-1/+1
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 Taylor2-1/+16
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 Administrator8-1/+177
2020-12-23PR middle-end/98160 - ICE in warn_dealloc_offset on member placement new and ↵Martin Sebor2-1/+33
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 Sebor2-0/+26
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 Hainque1-0/+41
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 Brobecker8-8/+16
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 Sidwell48-60/+59
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 Merrill4-2/+52
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 Taylor2-7/+5
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 Merrill1-1/+3
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 Jelinek1-1/+1
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 Merrill2-2/+7
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 Sandoe1-7/+16
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 Taylor3-11/+1
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 Buclaw2-2/+31
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 Sidwell9-440/+1
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 Bizjak2-13/+42
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-23Mention we also need automated linking.Thomas Koenig1-1/+1
2020-12-23Add TODOs in README.native_coarrays.Thomas Koenig1-0/+9
libgfortran/ChangeLog: * caf_shared/README.native_coarrays:
2020-12-23c++tools: Fix PIE [PR 98324]Nathan Sidwell3-2/+24
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-23Add offset to allocatable shared coarrays.Thomas Koenig7-24/+98
This adds the calculation of the offset for allocatable coarrays, which was missing before, and fixes the resulting fallout for ALLOCATED. Additionally, it prepares the way for STAT and ERRMSG for ALLOCATE of coarrays, but that still needs changes to gfc_trans_allocate. gcc/fortran/ChangeLog: * trans-array.c (gfc_conv_array_ref): If se->address_only is set, throw away all the offset calculation. (gfc_allocate_shared_coarray): Add arguments stat, errmsg and errlen to call to allocate. Calculate offset for allocatable coarrays. (gfc_array_allocate): Adjust call to gfc_allocate_shared_coarray. * trans-array.h (gfc_allocate_shared_coarray): Change prototype of cas_coarray_alloc. * trans-decl.c (gfc_build_builtin_function_decls): Adjust cas_coarray_alloc to changed prototypes. (gfc_trans_shared_coarray): Adjust call to gfc_allocate_shared_coarray. * trans-intrinsic.c (gfc_conv_allocated): Set address_only on se. * trans.h: Add flag address_only to gfc_se. libgfortran/ChangeLog: * caf_shared/wrapper.c (cas_coarray_alloc): Add status, error and errmsg arguments and their checking.
2020-12-23Daily bump.GCC Administrator6-1/+967
2020-12-22compiler: initialize saw_send_stmt localsIan Lance Taylor2-3/+3
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 Taylor6-103/+182
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 Sidwell833-0/+10400
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.
2020-12-22c++: Module ICE fixNathan Sidwell1-1/+2
A missing check for decl lang specific has made itself apparent. gcc/cp/ * module.cc (has_definition): Check DECL_LANG_SPECIFIC.
2020-12-22runtime: add "success" field to sudogIan Lance Taylor4-23/+29
This is the gofrontend version of https://golang.org/cl/245019. Original CL description: The current wakeup protocol for channel communications is that the second goroutine sets gp.param to the sudog when a value is successfully communicated over the channel, and to nil when the wakeup is due to closing the channel. Setting nil to indicate channel closure works okay for chansend and chanrecv, because they're only communicating with one channel, so they know it must be the channel that was closed. However, it means selectgo has to re-poll all of the channels to figure out which one was closed. This commit adds a "success" field to sudog, and changes the wakeup protocol to always set gp.param to sg, and to use sg.success to indicate successful communication vs channel closure. While here, this also reorganizes the chansend code slightly so that the sudog is still released to the pool if the send blocks and then is awoken because the channel closed. For golang/go#40410 This is being brought over to gofrontend as a step toward upgrading to Go1.16beta1, setting up for more compiler changes related to select handling. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/279734
2020-12-22runtime: omit nil-channel cases from selectgo's ordersIan Lance Taylor2-41/+29
This is the gofrontend version of https://golang.org/cl/245123. Original CL description: Currently, selectgo does an initial pass over the cases array to look for entries with nil channels, so they can be easily recognized and skipped later on. But this still involves actually visiting the cases. This commit changes selectgo to omit cases with nil channels when constructing pollorder, so that they'll be skipped over entirely later on. It also checks for caseDefault up front, which will facilitate changing it to use a "block bool" parameter instead. Updates golang/go#40410 This is being brought over to gofrontend as a step toward upgrading to Go1.16beta1, setting up for more compiler changes related to select handling. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/279733
2020-12-22runtime: remove scase.releasetime fieldIan Lance Taylor3-16/+12
This is the gofrontend version of https://golang.org/cl/245122. Original CL description: selectgo will report at most one block event, so there's no need to keep a releasetime for every select case. It suffices to simply track the releasetime of the case responsible for the wakeup. Updates 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/+/279732
2020-12-22c++: Handle array members in build_comparison_op [PR93480]Jakub Jelinek3-5/+162
http://eel.is/c++draft/class.compare.default#6 says for the expanded list of subobjects: "In that list, any subobject of array type is recursively expanded to the sequence of its elements, in the order of increasing subscript." but build_comparison_op just tried to compare the whole arrays, which failed and therefore the defaulted comparison was deleted. The following patch instead compares the array elements, and if info.defining, adds runtime loops around it so that it iterates over increasing subscripts. For flexible array members it punts, we don't know how large those will be, for zero sized arrays it doesn't even try to compare the elements, because if there are no elements, there is nothing to compare, and for [1] arrays it will not emit a loop because it is enough to use [0] array ref to cover everything. 2020-12-21 Jakub Jelinek <jakub@redhat.com> PR c++/93480 * method.c (common_comparison_type): If comps[i] is a TREE_LIST, use its TREE_VALUE instead. (build_comparison_op): Handle array members. * g++.dg/cpp2a/spaceship-synth10.C: New test. * g++.dg/cpp2a/spaceship-synth-neg5.C: New test.
2020-12-22arm&aarch64: subdivide the type attribute "alu_shfit_imm"Qian Jianhua38-62/+170
The type attribute "alu_shfit_imm" is subdivided into "alu_shift_imm_lsl_1to4" and "alu_shift_imm_other", to accommodate optimazations of some microarchitectures. Here is the detailed discussion. https://gcc.gnu.org/pipermail/gcc/2020-September/233594.html gcc/ * config/arm/types.md (define_attr "autodetect_type"): New. (define_attr "type"): Subdivide alu_shift_imm. * config/arm/common.md: New file. * config/aarch64/predicates.md:Include common.md. * config/arm/predicates.md:Include common.md. * config/aarch64/aarch64.md (*add_<shift>_<mode>): Set autodetect_type. (*add_<shift>_si_uxtw): Likewise. (*sub_<shift>_<mode>): Likewise. (*sub_<shift>_si_uxtw): Likewise. (*neg_<shift>_<mode>2): Likewise. (*neg_<shift>_si2_uxtw): Likewise. * config/arm/arm.md (*addsi3_carryin_shift): Likewise. (add_not_shift_cin): Likewise. (*subsi3_carryin_shift): Likewise. (*subsi3_carryin_shift_alt): Likewise. (*rsbsi3_carryin_shift): Likewise. (*rsbsi3_carryin_shift_alt): Likewise. (*arm_shiftsi3): Likewise. (*<arith_shift_insn>_multsi): Likewise. (*<arith_shift_insn>_shiftsi): Likewise. (subsi3_carryin): Set new type. (*if_arith_move): Set new type. (*if_move_arith): Set new type. (define_attr "core_cycles"): Use new type. * config/arm/arm-fixed.md (arm_ssatsihi_shift): Set autodetect_type. * config/arm/thumb2.md (*orsi_not_shiftsi_si): Likewise. (*thumb2_shiftsi3_short): Set new type. * config/aarch64/falkor.md (falkor_alu_1_xyz): Use new type. * config/aarch64/saphira.md (saphira_alu_1_xyz): Likewise. * config/aarch64/thunderx.md (thunderx_arith_shift): Likewise. * config/aarch64/thunderx2t99.md (thunderx2t99_alu_shift): Likewise. * config/aarch64/thunderx3t110.md (thunderx3t110_alu_shift): Likewise. (thunderx3t110_alu_shift1): Likewise. * config/aarch64/tsv110.md (tsv110_alu_shift): Likewise. * config/arm/arm1020e.md (1020alu_shift_op): Likewise. * config/arm/arm1026ejs.md (alu_shift_op): Likewise. * config/arm/arm1136jfs.md (11_alu_shift_op): Likewise. * config/arm/arm926ejs.md (9_alu_op): Likewise. * config/arm/cortex-a15.md (cortex_a15_alu_shift): Likewise. * config/arm/cortex-a17.md (cortex_a17_alu_shiftimm): Likewise. * config/arm/cortex-a5.md (cortex_a5_alu_shift): Likewise. * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise. * config/arm/cortex-a57.md (cortex_a57_alu_shift): Likewise. * config/arm/cortex-a7.md (cortex_a7_alu_shift): Likewise. * config/arm/cortex-a8.md (cortex_a8_alu_shift): Likewise. * config/arm/cortex-a9.md (cortex_a9_dp_shift): Likewise. * config/arm/cortex-m4.md (cortex_m4_alu): Likewise. * config/arm/cortex-m7.md (cortex_m7_alu_shift): Likewise. * config/arm/cortex-r4.md (cortex_r4_alu_shift): Likewise. * config/arm/exynos-m1.md (exynos_m1_alu_shift): Likewise. * config/arm/fa526.md (526_alu_shift_op): Likewise. * config/arm/fa606te.md (606te_alu_op): Likewise. * config/arm/fa626te.md (626te_alu_shift_op): Likewise. * config/arm/fa726te.md (726te_alu_shift_op): Likewise. * config/arm/fmp626.md (mp626_alu_shift_op): Likewise. * config/arm/marvell-pj4.md (pj4_shift): Likewise. (pj4_shift_conds): Likewise. (pj4_alu_shift): Likewise. (pj4_alu_shift_conds): Likewise. * config/arm/xgene1.md (xgene1_alu): Likewise. * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
2020-12-22i386: Fix __builtin_floor with FE_DOWNWARD rounding direction [PR96793]Uros Bizjak2-5/+48
x86_expand_floorceil 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-22 Uroš Bizjak <ubizjak@gmail.com> gcc/ PR target/96793 * config/i386/i386-expand.c (ix86_expand_floorceil): Remove the sign of the intermediate value for flag_rounding_math. (ix86_expand_floorceildf_32): Ditto. gcc/testsuite/ PR target/96793 * gcc.target/i386/pr96793.c: New test.
2020-12-22c++: Fix build with clangGerald Pfeifer1-0/+2
After the addition of libcody building with clang 10.0.1 would fail as follows: In file included from .../libcody/cody.hh:24: In file included from /usr/include/c++/v1/memory:653: /usr/include/c++/v1/typeinfo:346:5: error: no member named 'fancy_abort' in namespace 'std::__1'; did you mean simply 'fancy_abort'? _VSTD::abort(); ^~~~~~~ mapper-client.cc and mapper-resolver.cc have addressed this already by getting <string> and <vector> included; do the same for module.cc. gcc/cp: 2020-12-22 Gerald Pfeifer <gerald@pfeifer.com> * module.cc (INCLUDE_STRING): Define. (INCLUDE_VECTOR): Ditto.
2020-12-21c++: Add some asserts in mangle.cJason Merrill1-2/+8
The added asserts are places I noticed that we aren't adding the "on" to distinguish an operator name from an expression involving the operator. Hopefully that's because operator names never get there; if not, crash bug reports will let us fix the issue. gcc/cp/ChangeLog: * mangle.c (write_member_name): Add assert. (write_expression): Add asserts.
2020-12-21c++: Fix demangling of <unresolved-name>Jason Merrill3-22/+72
The ABI for unresolved scoped names on the RHS of . and -> used to be sr <type> <unqualified-id> That changed years ago to something more complex, but G++ was never updated. This change was particularly incompatible for simple qualified-ids like A::x, which were previously mangled as sr1A1x, and now sr1AE1x. This obviously makes life hard for demanglers, which can't know whether to consume that E or not. To work around this, we now try demangling with the newer ABI, and if that fails and we saw an "sr", try again with the older ABI. libiberty/ChangeLog: PR c++/67343 * cp-demangle.h (struct d_info): Add unresolved_name_state. * cp-demangle.c (d_prefix): Add subst parm. (d_nested_name): Pass it. (d_unresolved_name): Split out from... (d_expression_1): ...here. (d_demangle_callback): Maybe retry with old sr mangling. * testsuite/demangle-expected: Add test.
2020-12-22Fix Typo.liuhongt1-1/+1
gcc/ChangeLog * config/i386/i386.md (*one_cmpl<mode>2_1): Fix typo, change alternative from 2 to 1 in attr isa.
2020-12-21-fdump-go-spec: don't crash if DECL_ORIGINAL_TYPE is NULLIan Lance Taylor1-0/+2
* godump.c (go_output_typedef): If DECL_ORIGINAL_TYPE is NULL, use TREE_TYPE.
2020-12-21Go frontend: ensure mpfr exponent range is large enough for GoIan Lance Taylor1-0/+10
PR go/98402 * go-lang.c (go_langhook_init): Force MPFR exponent range to be large enough to support Go constants.
2020-12-22Daily bump.GCC Administrator9-1/+131