Commit Graph

173728 Commits

Author SHA1 Message Date
GCC Administrator
aec6cd6a2a Daily bump.
From-SVN: r279746
2019-12-28 00:16:32 +00:00
Richard Sandiford
3261d8ba59 [AArch64] Fix typo in V_INT_CONTAINER
All VNx2 V_INT_CONTAINER entries should map to VNx2DI.  The lower-case
version was already correct.

2019-12-27  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* config/aarch64/iterators.md (V_INT_CONTAINER): Fix VNx2SF entry.

gcc/testsuite/
	* gcc.target/aarch64/sve/mixed_size_11.c: New test.

From-SVN: r279743
2019-12-27 16:55:36 +00:00
Richard Sandiford
cd8aa0d1a5 Add missing target check for fully-masked fold-left reductions
The fold-left reduction code has a (rarely-used) fallback that handles
cases in which the loop is fully-masked and the target has no native
support for the reduction.  The fallback includea a VEC_COND_EXPR
between the reduction vector and a safe value, so we should check
whether that VEC_COND_EXPR is supported.

2019-12-27  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* tree-vect-loop.c (vectorizable_reduction): Check whether the
	target supports the required VEC_COND_EXPR operation before
	allowing the fallback handling of masked fold-left reductions.

gcc/testsuite/
	* gcc.target/aarch64/sve/mixed_size_10.c: New test.

From-SVN: r279742
2019-12-27 16:54:54 +00:00
GCC Administrator
049e64f8f1 Daily bump.
From-SVN: r279739
2019-12-27 00:16:34 +00:00
Jakub Jelinek
7cd268ad6a re PR c++/92438 (Function declaration parsed incorrectly with -std=c++1z)
PR c++/92438
	* parser.c (cp_parser_constructor_declarator_p): If open paren
	is followed by RID_ATTRIBUTE, skip over the attribute tokens and
	try to parse type specifier.

	* g++.dg/ext/attrib61.C: New test.

From-SVN: r279736
2019-12-26 11:16:01 +01:00
GCC Administrator
ae2bb2a643 Daily bump.
From-SVN: r279735
2019-12-26 00:16:42 +00:00
Alexandre Oliva
85129ff10a Define HAVE_ for math long double functions declared in vxworks headers
When cross-building for vxworks, test for declarations of long double
functions in math.h.  We don't normally test for these functions when
cross compiling, because link tests don't work, or ever really, but
not defining them as available causes replacements to be defined in
ways that may cause duplicate definition linker errors if the units
defining both the replacement and the actual implementation are
brought in because of other symbols.


for libstdc++-v3/ChangeLog

	* crossconfig.m4 (GLIBCXX_CROSSCONFIG) [*-vxworks*]: Define
	long double functions as available if declared by math.h.
	(GLIBCXX_CHECK_MATH_DECL, GLIBCXX_CHECK_MATH_DECLS): New.
	* configure: Rebuild.

From-SVN: r279731
2019-12-25 06:43:22 +00:00
GCC Administrator
de0db05147 Daily bump.
From-SVN: r279730
2019-12-25 00:16:22 +00:00
Jiufu Guo
b57fab1860 rs6000: re-enable web and rnreg with -funroll-loops
Previously, limited unrolling was enabled at O2 for powerpc in r278034.  At that
time, -fweb and -frename-registers were not enabled together with -funroll-loops
even for -O3.  After that, we notice there are some performance degradations on
SPEC2006fp which caused by without web and rnreg.  This patch enable -fweb
and -frename-registers for -funroll-loops to align original behavior before
r278034.

gcc/
2019-12-23  Jiufu Guo  <guojiufu@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
	-fweb and -frename-registers with -funroll-loops

From-SVN: r279725
2019-12-24 13:27:33 +00:00
Ian Lance Taylor
f2a8799309 re PR go/93020 (Final patches to build gcc-10 on GNU/Hurd)
PR go/93020
    libgo: Hurd portability patches
    
    By Svante Signell.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/212409

From-SVN: r279724
2019-12-24 05:05:32 +00:00
GCC Administrator
767a77e593 Daily bump.
From-SVN: r279723
2019-12-24 00:16:21 +00:00
Thomas Schwinge
c36371aa34 Restrict 'c-c++-common/goacc/mdc-1.c' to LP64, LLP64
The tree dump scanning has certain expectations.

	gcc/testsuite/
	* c-c++-common/goacc/mdc-1.c: Restrict to LP64, LLP64.

From-SVN: r279720
2019-12-23 21:20:29 +01:00
Richard Sandiford
b8c9cc5100 [C++] Make same_type_p return false for gnu_vector_type_p differences (PR 92789)
As Jason pointed out in the review of the C++ gnu_vector_type_p patch:

    https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00173.html

the real fix for the XFAILs in acle/general-c++/gnu_vectors_*.C is to
make same_type_p return false for two types if one is gnu_vector_type_p
and the other isn't.  This patch does that and fixes the fallout.

Originally I'd tried to make it so that "X *" and "Y *" are
interconvertible whenever X and Y are, and similarly for
"X &" and "Y &".  That doesn't fall out naturally though,
and is different from how -flax-vector-conversions works.
The patch therefore accepts all the consequences of making
X and Y !same_type_p instead of trying to work around them.

2019-12-23  Richard Sandiford  <richard.sandiford@arm.com>

gcc/cp/
	PR c++/92789
	* typeck.c (structural_comptypes): Make sure that two vector types
	agree on gnu_vector_type_p.

gcc/testsuite/
	PR c++/92789
	* g++.dg/ext/sve-sizeless-2.C (statements): Expect pointer
	difference and comparisons between GNU and non-GNU types
	to be rejected.  Expect __is_same to be false for such pairs.
	* g++.target/aarch64/sve/acle/general-c++/gnu_vectors_1.C: Remove
	XFAILs.  Expect conversions between SVE vector pointers and
	GNU vector pointers to be rejected.  Test references.
	* g++.target/aarch64/sve/acle/general-c++/gnu_vectors_2.C: Likewise.

From-SVN: r279717
2019-12-23 09:43:46 +00:00
Richard Sandiford
96bea935c0 [C++] Fix ICE for binding lax vector conversions to references (PR 93014)
This test:

typedef unsigned int v4si __attribute__ ((vector_size(16)));
typedef unsigned char v16qi __attribute__ ((vector_size(16)));
extern v16qi x;
v4si &y = x;

ICEs with:

a.c:4:11: internal compiler error: in convert_like_real, at cp/call.c:7670

This started with r260780, which had the effect of making lvalue_kind
look through VIEW_CONVERT_EXPR in all cases, not just for location
wrappers.  This also means that:

typedef unsigned int v4si __attribute__ ((vector_size(16)));
typedef unsigned char v16qi __attribute__ ((vector_size(16)));
extern v16qi x;
v4si &y = reinterpret_cast<v4si>(x);

is now valid despite the result of the cast being an rvalue.

The patch attempts to fix that by calling rvalue on the input to the
conversion, so that the tree looks the same as for:

  extern v16qi x;
  v4si &y = (v4si)x;

which is already handled correctly.

2019-12-23  Richard Sandiford  <richard.sandiford@arm.com>

gcc/cp/
	* cvt.c (ocp_convert): Apply rvalue to the source of vector
	conversions.
	* typeck.c (build_reinterpret_cast_1): Likewise.

gcc/testsuite/
	* g++.dg/ext/vector39.C: New test.

From-SVN: r279716
2019-12-23 09:43:35 +00:00
GCC Administrator
3bdc221879 Daily bump.
From-SVN: r279715
2019-12-23 00:16:14 +00:00
Maciej W. Rozycki
6c84c8bf9b Add OpenACC 2.6 `acc_get_property' support
Add generic support for the OpenACC 2.6 `acc_get_property' and
`acc_get_property_string' routines, as well as full handlers for the
host and the NVPTX offload targets and minimal handlers for the HSA,
Intel MIC, and AMD GCN offload targets.

Included are C/C++ and Fortran tests that, in particular, print
the property values for acc_property_vendor, acc_property_memory,
acc_property_free_memory, acc_property_name, and acc_property_driver.
The output looks as follows:

Vendor: GNU
Name: GOMP
Total memory: 0
Free memory: 0
Driver: 1.0

with the host driver (where the memory related properties are not
supported for the host device and yield 0, conforming to the standard)
and output like:

Vendor: Nvidia
Total memory: 12651462656
Free memory: 12202737664
Name: TITAN V
Driver: CUDA Driver 9.1

with the NVPTX driver.

2019-12-22  Maciej W. Rozycki  <macro@codesourcery.com>
	    Frederik Harwath  <frederik@codesourcery.com>
	    Thomas Schwinge  <tschwinge@codesourcery.com>

	include/
	* gomp-constants.h (gomp_device_property): New enum.

	libgomp/
	* libgomp.h (gomp_device_descr): Add `get_property_func' member.
	* libgomp-plugin.h (gomp_device_property_value): New union.
	(gomp_device_property_value): New prototype.
	* openacc.h (acc_device_t): Add `acc_device_current' enumeration
	constant.
	(acc_device_property_t): New enum.
	(acc_get_property, acc_get_property_string): New prototypes.
	* oacc-init.c (acc_get_device_type): Also assert that result
	is not `acc_device_current'.
	(get_property_any, acc_get_property, acc_get_property_string):
	New functions.
	* openacc.f90 (openacc_kinds): Add `acc_device_current' and
	`acc_property_memory', `acc_property_free_memory',
	`acc_property_name', `acc_property_vendor' and
	`acc_property_driver' constants.  Add `acc_device_property' data
	type.
	(openacc_internal): Add `acc_get_property' and
	`acc_get_property_string' interfaces.  Add `acc_get_property_h',
	`acc_get_property_string_h', `acc_get_property_l' and
	`acc_get_property_string_l'.
	* oacc-host.c (host_get_property): New function.
	(host_dispatch): Wire it.
	* target.c (gomp_load_plugin_for_device): Handle `get_property'.
	* libgomp.map (OACC_2.6): Add `acc_get_property', `acc_get_property_h_',
	`acc_get_property_string' and `acc_get_property_string_h_' symbols.
	* libgomp.texi (OpenACC Runtime Library Routines): Add
	`acc_get_property'.
	(acc_get_property): New node.
	* plugin/plugin-gcn.c (GOMP_OFFLOAD_get_property): New
	function (stub).
	* plugin/plugin-hsa.c (GOMP_OFFLOAD_get_property): New function.
	* plugin/plugin-nvptx.c (CUDA_CALLS): Add `cuDeviceGetName',
	`cuDeviceTotalMem', `cuDriverGetVersion' and `cuMemGetInfo'
	calls.
	(GOMP_OFFLOAD_get_property): New function.
	(struct ptx_device): Add new field "name".
	(cuda_driver_version_s): Add new static variable ...
	(nvptx_init): ... and init from here.

	* testsuite/libgomp.oacc-c-c++-common/acc_get_property.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-2.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-3.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-aux.c: New file
	with test helper functions.

	* testsuite/libgomp.oacc-fortran/acc_get_property.f90: New test.

	liboffloadmic/
	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_property):
	New function.

Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>


Co-Authored-By: Frederik Harwath <frederik@codesourcery.com>
Co-Authored-By: Thomas Schwinge <tschwinge@codesourcery.com>

From-SVN: r279710
2019-12-22 19:54:09 +00:00
Andrew Pinski
edadb8adc3 Restrict some aarch64 testcases to little-endian
2019-12-21  Andrew Pinski  <apinski@marvell.com>

        PR testsuite/92998
        * gcc.target/aarch64/sve/acle/general/dupq_1.c:
        Restrict to aarch64_little_endian only.
        * gcc.target/aarch64/torture/simd-abi-8.c:
        Likewise.

From-SVN: r279709
2019-12-21 17:35:08 -08:00
Maciej W. Rozycki
c8e759b421 libgomp/test: Fix compilation for build sysroot
Fix a problem with the libgomp testsuite using a method to determine
the compiler to use resulting in the tool being different from one the
library has been built with, and causing a catastrophic failure from the
lack of a suitable `--sysroot=' option where the `--with-build-sysroot='
configuration option has been used to build the compiler resulting in
the inability to link executables.

Address this problem by defining the compiler to use, via the
GCC_UNDER_TEST TCL variable, set in the DejaGNU configuration file from
$CC by autoconf, which will have all the required options set for the
target compiler to build executables in the environment configured,
removing failures like:

.../bin/riscv64-linux-gnu-ld: cannot find crt1.o: No such file or directory
.../bin/riscv64-linux-gnu-ld: cannot find -lm
.../bin/riscv64-linux-gnu-ld: cannot find -lpthread
.../bin/riscv64-linux-gnu-ld: cannot find -lc
.../bin/riscv64-linux-gnu-ld: cannot find -latomic
collect2: error: ld returned 1 exit status
compiler exited with status 1
FAIL: libgomp.c/../libgomp.c-c++-common/atomic-18.c (test for excess errors)
Excess errors:
.../bin/riscv64-linux-gnu-ld: cannot find crt1.o: No such file or directory
.../bin/riscv64-linux-gnu-ld: cannot find -lm
.../bin/riscv64-linux-gnu-ld: cannot find -lpthread
.../bin/riscv64-linux-gnu-ld: cannot find -lc
.../bin/riscv64-linux-gnu-ld: cannot find -latomic

UNRESOLVED: libgomp.c/../libgomp.c-c++-common/atomic-18.c compilation failed to produce executable

and bringing overall test results for the `riscv64-linux-gnu' target
(here with the `x86_64-linux-gnu' host and RISC-V QEMU in the Linux user
emulation mode as the target board) from:

		=== libgomp Summary ===

# of expected passes		44
# of unexpected failures	3274
# of unresolved testcases	3241
# of unsupported tests		548

to:

		=== libgomp Summary ===

# of expected passes		6834
# of unexpected failures	4
# of expected failures		4
# of unsupported tests		518

	libgomp/
	* testsuite/libgomp-test-support.exp.in (GCC_UNDER_TEST): New
	variable.

From-SVN: r279708
2019-12-22 00:41:36 +00:00
Gerald Pfeifer
20ff65f8c5 * doc/invoke.texi (-flto): Use "compile time" as a noun.
From-SVN: r279707
2019-12-22 00:28:57 +00:00
Maciej W. Rozycki
d42b84f427 testsuite: Fix run-time tracking down of `libgcc_s'
Fix a catastrophic libgo testsuite failure in cross-compilation where
the shared `libgcc_s' library cannot be found by the loader at run time
in build-tree testing and consequently all test cases fail the execution
stage, giving output (here with the `x86_64-linux-gnu' host and the
`riscv64-linux-gnu' target, with RISC-V QEMU in the Linux user emulation
mode as the target board) like:

spawn qemu-riscv64 -E LD_LIBRARY_PATH=.:.../riscv64-linux-gnu/lib64/lp64d/libgo/.libs ./a.exe
./a.exe: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory
FAIL: archive/tar

To do so rework `gcc-set-multilib-library-path' so as not to rely on the
`rootme' TCL variable to have been preset in testsuite invocation, which
only works for the GCC test suites and not for library test suites, and
also use `remote_exec host' rather than `exec' to invoke the compiler in
determination of `libgcc_s' locations, so that the solution works in
remote testing as well while also avoiding the hardcoded limit of the
executable's path length imposed by `exec'.

This is based on an observation that the multilib root directory can be
determined by stripping out the multilib directory in effect as printed
with the `-print-multi-directory' option from the path produced by the
`-print-file-name=' option.  And then individual full multilib paths can
be assembled for the other multilibs by appending their respective
multilib directories to the multilib root directory.

Unlike with the old solution the full multilib paths are not checked for
the presence of the shared `libgcc_s' library there, but that is
supposed to be harmless.  Also the full multilib path for the multilib
used with the compiler used for testing will now come first, which
should reduce run-time processing in the usual case.

With this change in place test output instead looks like:

spawn qemu-riscv64 -E LD_LIBRARY_PATH=.:.../riscv64-linux-gnu/lib64/lp64d/libgo/.libs:..././gcc/lib64/lp64d:..././gcc/.:..././gcc/lib32/ilp32:..././gcc/lib32/ilp32d:..././gcc/lib64/lp64 ./a.exe
PASS
PASS: archive/tar

No summary comparison, because the libgo testsuite does not provide one
in this configuration for some reason, however this change improves
overall results from 0 PASSes and 159 FAILs to 133 PASSes and 26 FAILs.

	gcc/testsuite/
	* lib/gcc-defs.exp (gcc-set-multilib-library-path): Use
	`-print-file-name=' to determine the multilib root directory.
	Use `remote_exec host' rather than `exec' to invoke the
	compiler.

From-SVN: r279706
2019-12-22 00:28:20 +00:00
GCC Administrator
bcfcf777bd Daily bump.
From-SVN: r279705
2019-12-22 00:16:16 +00:00
Maciej W. Rozycki
5cb34da7d9 libada: Fix shared library installation with `--disable-libada'
Provide a default value of $(toolexeclibdir) for $(ADA_RTL_DSO_DIR), so
that in a `--disable-libada' configuration `make install' places shared
gnatlib libraries, built with `make -C gcc gnatlib-shared', in their
intended version-specific location, fixing a commit r276424 ("libada:
Respect `--enable-version-specific-runtime-libs'") regression.

	gcc/ada/
	* gcc-interface/Makefile.in (toolexeclibdir): New variable.

From-SVN: r279702
2019-12-22 00:15:44 +00:00
Thomas Schwinge
b092fb3b67 [OMP] Restore 'omp declare target link' handling
PASS: libgomp.c/target-link-1.c (test for excess errors)
    [-PASS:-]{+FAIL:+} libgomp.c/target-link-1.c execution test

We need to revert one line of code change from r279625.

	libgomp/
	* target.c (gomp_map_vars_internal): Restore 'omp declare target
	link' handling.

From-SVN: r279701
2019-12-21 23:58:43 +01:00
Thomas Schwinge
c0df8c9781 [PR93026, PR92929] Adjust 'gfortran.dg/goacc/finalize-1.f' for r279626 changes
gcc/testsuite/
	PR fortran/93026
	PR middle-end/92929
	* gfortran.dg/goacc/finalize-1.f: Adjust.

From-SVN: r279700
2019-12-21 22:32:36 +01:00
Harald Anlauf
2289627dc2 re PR fortran/91661 (ICE in gfc_conv_intrinsic_dot_product, at fortran/trans-intrinsic.c:4804)
2019-12-21  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/91661
	* gfortran.dg/pr91661.f90: New test.

From-SVN: r279699
2019-12-21 20:42:14 +00:00
Harald Anlauf
b5fd86aba8 re PR fortran/92990 (INVALID code with NULLIFY – partially misleading error message "If bounds remapping is specified at (1), the pointer target shall not be NULL")
2019-12-21  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/92990
	* match.c (gfc_match_nullify): Check for valid pointer object.
	Reject bounds remapping.

	PR fortran/92990
	* gfortran.dg/pr92990.f90: New test.

From-SVN: r279698
2019-12-21 20:25:43 +00:00
Paul Thomas
b1f16cae7d re PR fortran/92753 (ICE in gfc_trans_call, at fortran/trans-stmt.c:392)
2019-12-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/92753
	* expr.c (find_inquiry_ref): Catch INQUIRY_LEN case, where the
	temporary expression has been converted to a constant and make
	the new expression accordingly. Correct the error in INQUIRY_RE
	and INQUIRY_IM cases. The original rather than the resolved
	expression was being used as the source in mpfr_set.

2019-12-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/92753
	* gfortran.dg/inquiry_type_ref_5.f90 : New test.

From-SVN: r279696
2019-12-21 16:19:42 +00:00
Martin Jambor
a09ccc2245 Avoid segfault when doing IPA-VRP but not IPA-CP (PR 93015)
2019-12-21  Martin Jambor  <mjambor@suse.cz>

	PR ipa/93015
	* ipa-cp.c (ipcp_store_vr_results): Check that info exists

	testsuite/
	* gcc.dg/lto/pr93015_0.c: New test.

From-SVN: r279695
2019-12-21 12:25:05 +01:00
GCC Administrator
7ef6cab9b5 Daily bump.
From-SVN: r279690
2019-12-21 00:16:17 +00:00
Jakub Jelinek
907343e8d0 re PR middle-end/91512 (Fortran compile time regression.)
PR middle-end/91512
	PR fortran/92738
	* lang.opt (-finline-arg-packing): Add trailing dot to help text.

From-SVN: r279687
2019-12-21 00:51:15 +01:00
Marek Polacek
14818f987a PR c++/92745 - bogus error when initializing array of vectors.
In r268428 I changed reshape_init_r in such a way that when it sees
a nested { } in a CONSTRUCTOR with missing braces, it just returns
the initializer:
+     else if (COMPOUND_LITERAL_P (stripped_init)
...
+         ++d->cur;
+         gcc_assert (!BRACE_ENCLOSED_INITIALIZER_P (stripped_init));
+         return init;

But as this test shows, that's incorrect: if TYPE is an array, we need
to proceed to reshape_init_array_1 which will iterate over the array
initializers:
 6006   /* Loop until there are no more initializers.  */
 6007   for (index = 0;
 6008        d->cur != d->end && (!sized_array_p || index <= max_index_cst);
 6009        ++index)
 6010     {
and update d.cur accordingly.  In other words, when reshape_init gets

{{col[0][0], col[1][0], col[2][0], col[3][0]},
 {col[0][1], col[1][1], col[2][1], col[3][1]},
 {col[0][2], col[1][2], col[2][2], col[3][2]},
 {col[0][3], col[1][3], col[2][3], col[3][3]}}

we recurse on the first element:
  {col[0][0], col[1][0], col[2][0], col[3][0]}
and we can't just move d.cur to point to
  {col[0][1], col[1][1], col[2][1], col[3][1]}
and return; we need to iterate, so that d.cur ends up being properly
updated, and after all initializers have been seen, points to d.end.
Currently we skip the loop, wherefore we hit this:

 6502   /* Make sure all the element of the constructor were used. Otherwise,
 6503      issue an error about exceeding initializers.  */
 6504   if (d.cur != d.end)
 6505     {
 6506       if (complain & tf_error)
 6507         error ("too many initializers for %qT", type);
 6508       return error_mark_node;
 6509     }

	* decl.c (reshape_init_r): For a nested compound literal, do
	call reshape_init_{class,array,vector}.

	* g++.dg/cpp0x/initlist118.C: New test.

From-SVN: r279686
2019-12-20 23:30:04 +00:00
Marek Polacek
97ba5b86a3 PR c++/92974 - bogus location for enum and non-enum in ?: warning.
build_min_non_dep wasn't setting any location so when we were emitting the
warning in the following test while instantiating a template, its location
was UNKNOWN_LOCATION.  Rather than adding a location_t parameter, let's use
the location from the original expression.

	* tree.c (build_min_non_dep): Use the location of NON_DEP when
	building the expression.

	* g++.dg/diagnostic/enum1.C: New test.
	* g++.dg/gomp/loop-2.C: Adjust dg-error.
	* g++.dg/gomp/for-21.C: Likewise.

From-SVN: r279685
2019-12-20 23:25:44 +00:00
Jakub Jelinek
7731b8e6f4 re PR c++/92965 ("note: 'x' is not public" emitted even when no error is emitted)
PR c++/92965
	* pt.c (invalid_nontype_parm_type_p): Call structural_type_p with
	explain=true only if emitting error.

	* g++.dg/cpp2a/nontype-class27.C: New test.

From-SVN: r279684
2019-12-21 00:21:21 +01:00
Jakub Jelinek
b804bd89d3 re PR c++/92966 (Segfault on defaulted operator== with wrong return type)
PR c++/92966
	* method.c (early_check_defaulted_comparison): Don't set
	DECL_MAYBE_DELETED when returning false.

	* g++.dg/cpp2a/spaceship-eq8.C: New test.

From-SVN: r279683
2019-12-21 00:19:23 +01:00
Jakub Jelinek
8aca5ebe07 re PR c++/92973 (Silently accepting defaulted comparison operators in C++11 .. 17)
PR c++/92973
	* method.c (early_check_defaulted_comparison): For C++17 and earlier
	diagnose defaulted comparison operators.

	* g++.dg/cpp0x/spaceship-eq1.C: New test.

From-SVN: r279682
2019-12-21 00:18:09 +01:00
Jakub Jelinek
0bd002bf2e re PR c++/92666 (bogus -Wunused-but-set-variable in gcov.c with -Wno-restrict)
PR c++/92666
	* call.c (convert_arg_to_ellipsis): For floating point or
	decltype(nullptr) arguments call mark_rvalue_use.

	* g++.dg/warn/Wunused-var-36.C: New test.

From-SVN: r279681
2019-12-21 00:16:58 +01:00
Jakub Jelinek
6c7b84305a re PR c++/92992 (Side-effects dropped when decltype(nullptr) typed expression is passed to ellipsis)
PR c++/92992
	* call.c (convert_arg_to_ellipsis): For decltype(nullptr) arguments
	that have side-effects use cp_build_compound_expr.

	* g++.dg/cpp0x/nullptr45.C: New test.

From-SVN: r279680
2019-12-21 00:15:52 +01:00
Michael Meissner
03e487e541 Rename signed integer 16/34-bit macros.
2019-12-20   Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/predicates.md (cint34_operand): Use
	SIGNED_INTEGER_34BIT_P macro.
	* config/rs6000/rs6000.c (num_insns_constant_gpr): Use the
	SIGNED_INTEGER_16BIT_P and SIGNED_INTEGER_34BIT_P macros.
	(address_to_insn_form): Use the SIGNED_INTEGER_16BIT_P and
	SIGNED_INTEGER_34BIT_P macros.
	* config/rs6000/rs6000.h (SIGNED_INTEGER_NBIT_P): New macro.
	(SIGNED_INTEGER_16BIT_P): Rename SIGNED_16BIT_OFFSET_P to be
	SIGNED_INTEGER_34BIT_P.
	(SIGNED_INTEGER_34BIT_P): Rename SIGNED_34BIT_OFFSET_P to be
	SIGNED_INTEGER_34BIT_P.

From-SVN: r279677
2019-12-20 19:27:47 +00:00
Eric Botcazou
39292e2507 c-ada-spec.h (decl_sloc): Delete.
c-family/
	* c-ada-spec.h (decl_sloc): Delete.
	* c-ada-spec.c (decl_sloc): Make static.
c/
	* c-decl.c (collect_source_ref_cb): Delete.
	(for_each_global_decl): Rename into...
	(collect_source_refs): ...this.  Call collect_source_ref directly.
	(c_parse_final_cleanups): Always call collect_source_ref on the main
	input filename.
cp/
	* decl2.c (c_parse_final_cleanups): Always call collect_source_ref on
	the main input filename.

From-SVN: r279670
2019-12-20 17:41:06 +00:00
Jonathan Wakely
02e8542795 fortran: Fix PR number in comment of testcase for PR 69497
The testcase was originally committed with an incorrect changelog and PR
number. The changelog was fixed later, but not the comment in the test.

	PR fortran/69497
	* gfortran.dg/pr69497.f90: Fix PR number in comment.

From-SVN: r279657
2019-12-20 17:10:22 +00:00
Jonathan Wakely
7770bd7e9a libstdc++: Add inline to maybe-constexpr functions (PR 92927)
Originally these functions were always inline. I changed them in r277342
to be always constexpr, then in r277588 changed them to be constexpr for
C++14, but I didn't restore the 'inline' for C++11. That leads to linker
errors when libstdc++.so is built unoptimized, because those functions
don't get instantiated in src/c++11/string-inst.o

	PR libstdc++/92927
	* include/bits/alloc_traits.h (__alloc_on_copy, __alloc_on_move)
	(__alloc_on_swap): Add inline specifier.

From-SVN: r279656
2019-12-20 17:10:18 +00:00
Stam Markianos-Wright
9260fb066b gcc/testsuite/ChangeLog:
2019-12-20  Stam Markianos-Wright  <stam.markianos-wright@arm.com>

	* lib/target-supports.exp 
	(check_effective_target_arm_v8_2a_i8mm_ok_nocache): New.
	(check_effective_target_arm_v8_2a_i8mm_ok): New.
	(add_options_for_arm_v8_2a_i8mm): New.
	(check_effective_target_arm_v8_2a_bf16_neon_ok_nocache): New.
	(check_effective_target_arm_v8_2a_bf16_neon_ok): New.
	(add_options_for_arm_v8_2a_bf16_neon): New.

gcc/Changelog:

2019-12-20  Stam Markianos-Wright  <stam.markianos-wright@arm.com>

	* doc/sourcebuild.texi
	(arm_v8_2a_bf16_neon_ok): Document new target supports option.
	(arm_v8_2a_i8mm_ok): Likewise.

From-SVN: r279648
2019-12-20 15:52:39 +00:00
Roman Zhuykov
0f6a7c1271 Rename tests to reference the correct PR
2019-12-20  Roman Zhuykov  <zhroma@ispras.ru>

	* gcc.dg/pr92951-1.c: Rename to ...
	* gcc.dg/pr92591-1.c: ... this.
	* gcc.dg/pr92951-2.c: Rename to ...
	* gcc.dg/pr92591-2.c: ... this.

From-SVN: r279645
2019-12-20 15:40:46 +00:00
Jerome Lambourg
84de780d46 libstdc++: Test setrlimit with c++ in configure
* acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Test with AC_LANG_CPLUSPLUS.
	* configure: Regenerate.

From-SVN: r279644
2019-12-20 15:30:41 +00:00
François Dumont
33bd8e5e22 libstdc++: Fix versioned namespace tests
* testsuite/23_containers/map/48101_neg.cc: Add versioned namespace
	pattern to tested error message.
	* testsuite/23_containers/multimap/48101_neg.cc: Likewise.
	* testsuite/30_threads/headers/stop_token/synopsis.cc: Add
	dg-require-normal-namepace.

From-SVN: r279641
2019-12-20 13:24:52 +00:00
François Dumont
e278e62f91 libstdc++: Fix pretty printers script and tests
* python/libstdcxx/v6/printers.py (lookup_node_type): Remove redundant
	call to lookup_node_type.
	* testsuite/libstdc++-prettyprinters/80276.cc: Define
	_GLIBCXX_USE_CXX11_ABI to 0.
	* testsuite/libstdc++-prettyprinters/91997.cc: Use regexp-test to check
	'a' content.

From-SVN: r279640
2019-12-20 12:42:50 +00:00
Thomas Koenig
95d27703bc Introduce -finline-arg-packing.
2019-12-20  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR middle-end/91512
    PR fortran/92738
    * invoke.texi: Document -finline-arg-packing.
    * lang.opt: Add -finline-arg-packing.
    * options.c (gfc_post_options): Handle -finline-arg-packing.
    * trans-array.c (gfc_conv_array_parameter): Use
    flag_inline_arg_packing instead of checking for optimize and
    optimize_size.

2019-12-20  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR middle-end/91512
    PR fortran/92738
    * gfortran.dg/inline_pack_25.f90: New test.

From-SVN: r279639
2019-12-20 11:51:05 +00:00
Tobias Burnus
de89b5748d Fortran] PR 92996 – fix rank resolution EXPR_ARRAY
PR fortran/92996
        gcc/fortran/
        * expr.c (simplify_parameter_variable): Call gfc_resolve_ref and
        gfc_expression_rank; fix location info.
        * gfortran.h (gfc_resolve_ref, gfc_expression_rank): Declare.
        * match.c (gfc_match_stopcode): Remove redundant setting of
        gfc_init_expr_flag; early return if gfc_simplify_expr has an error.
        * resolve.c (gfc_expression_rank): Renamed from expression_rank;
        minor cleanup.
        (gfc_resolve_ref): Removed static and renamed from resolve_ref.
        (resolve_variable, resolve_typebound_function,
        resolve_typebound_subroutine, resolve_ppc_call, resolve_expr_ppc,
        gfc_resolve_expr, resolve_procedure): Update calls.

        PR fortran/92996
        gcc/testsuite/
        * gfortran.dg/array_simplify_4.f90: New.
        * gfortran.dg/pr91565.f90: Update dg-error.
        * gfortran.dg/pr91801.f90: Likewise.

From-SVN: r279638
2019-12-20 12:35:20 +01:00
Tobias Burnus
e565e49fb2 Improve is-coindexed check for OpenACC/OpenMP
gcc/fortran/
        * openmp.c (resolve_omp_clauses): Move is-coindexed check from here ...
        (gfc_match_omp_variable_list): ... to here.

        gcc/testsuite/
        * gfortran.dg/goacc/coindexed-1.f90: New.

From-SVN: r279637
2019-12-20 12:22:52 +01:00
Jerome Lambourg
74a7b87a00 Add myself to MAINTAINERS
From-SVN: r279636
2019-12-20 10:43:47 +00:00