Age | Commit message (Collapse) | Author | Files | Lines |
|
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-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.
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
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
|
|
|
|
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.
|
|
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.
|
|
Undefine various macros unexpectedly defined by VxWorks headers.
for libstdc++-v3/ChangeLog
* testsuite/17_intro/names.cc: Account for VxWorks headers.
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/constexpr-overflow3.C: Use INT_MAX.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
libgfortran/ChangeLog:
* caf_shared/README.native_coarrays:
|
|
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.
|
|
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.
|
|
|
|
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
|
|
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
|
|
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.
|
|
A missing check for decl lang specific has made itself apparent.
gcc/cp/
* module.cc (has_definition): Check DECL_LANG_SPECIFIC.
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
gcc/ChangeLog
* config/i386/i386.md (*one_cmpl<mode>2_1): Fix typo, change
alternative from 2 to 1 in attr isa.
|
|
* godump.c (go_output_typedef): If DECL_ORIGINAL_TYPE is NULL, use
TREE_TYPE.
|
|
PR go/98402
* go-lang.c (go_langhook_init): Force MPFR exponent range to be
large enough to support Go constants.
|
|
|