gcc.git
5 years ago[nvptx] Enable setting vector length using -fopenacc-dim -- testcases
Tom de Vries [Sat, 12 Jan 2019 22:19:31 +0000 (22:19 +0000)]
[nvptx] Enable setting vector length using -fopenacc-dim -- testcases

Add some test-cases that set vector length using -fopenacc-dim.

2019-01-12  Tom de Vries  <tdevries@suse.de>

* testsuite/libgomp.oacc-c-c++-common/pr85486-2.c: New test.
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-2.c: New test.
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-5.c: New test.
* testsuite/libgomp.oacc-fortran/gemm-2.f90: New test.

From-SVN: r267897

5 years ago[nvptx] Enable setting vector length using -fopenacc-dim
Tom de Vries [Sat, 12 Jan 2019 22:19:15 +0000 (22:19 +0000)]
[nvptx] Enable setting vector length using -fopenacc-dim

Enable setting vector length using -fopenacc-dim, f.i. -fopenacc-dim=::128.

2019-01-12  Tom de Vries  <tdevries@suse.de>

* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
vector length using -fopenacc-dim.

* plugin/plugin-nvptx.c (nvptx_exec): Update error message.

From-SVN: r267896

5 years ago[nvptx] Add vector_length 64 test-cases
Tom de Vries [Sat, 12 Jan 2019 22:19:02 +0000 (22:19 +0000)]
[nvptx] Add vector_length 64 test-cases

Add some test-cases using vector_length 64.

2019-01-12  Tom de Vries  <tdevries@suse.de>

* testsuite/libgomp.oacc-c-c++-common/vector-length-64-1.c: New test.
* testsuite/libgomp.oacc-c-c++-common/vector-length-64-2.c: New test.
* testsuite/libgomp.oacc-c-c++-common/vector-length-64-3.c: New test.

From-SVN: r267895

5 years ago[nvptx] Force vl32 if calling vector-partitionable routines -- test-cases
Tom de Vries [Sat, 12 Jan 2019 22:18:50 +0000 (22:18 +0000)]
[nvptx] Force vl32 if calling vector-partitionable routines -- test-cases

Add test-cases for "[nvptx] Force vl32 if calling vector-partitionable
routines".

2019-01-12  Tom de Vries  <tdevries@suse.de>

PR target/85486
* testsuite/libgomp.oacc-c-c++-common/pr85486-3.c: New test.
* testsuite/libgomp.oacc-c-c++-common/pr85486.c: New test.

From-SVN: r267894

5 years ago[nvptx] Don't emit barriers for empty loops -- test-cases
Tom de Vries [Sat, 12 Jan 2019 22:18:39 +0000 (22:18 +0000)]
[nvptx] Don't emit barriers for empty loops -- test-cases

Add test-cases for PR85381.

2019-01-12  Tom de Vries  <tdevries@suse.de>

PR target/85381
* testsuite/libgomp.oacc-c-c++-common/pr85381-5.c: New test.
* testsuite/libgomp.oacc-c-c++-common/pr85381.c: New test.

From-SVN: r267893

5 years ago[nvptx] Enable large vectors -- reduction testcases
Tom de Vries [Sat, 12 Jan 2019 22:18:27 +0000 (22:18 +0000)]
[nvptx] Enable large vectors -- reduction testcases

Add various reduction test-cases with vector length 128.

2019-01-12  Tom de Vries  <tdevries@suse.de>

* testsuite/libgomp.oacc-c-c++-common/vred2d-128.c: New test.
* testsuite/libgomp.oacc-fortran/gemm.f90: New test.
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-10.c: New test.

From-SVN: r267892

5 years ago[nvptx] Enable large vectors -- test-cases
Tom de Vries [Sat, 12 Jan 2019 22:18:11 +0000 (22:18 +0000)]
[nvptx] Enable large vectors -- test-cases

Add various test-cases with vector length 128.

2019-01-12  Tom de Vries  <tdevries@suse.de>

* testsuite/libgomp.oacc-c-c++-common/vector-length-128-7.c: New test.
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-4.c: New test.
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-6.c: New test.

From-SVN: r267891

5 years ago[nvptx] Update insufficient launch message for variable vector_length
Tom de Vries [Sat, 12 Jan 2019 22:18:00 +0000 (22:18 +0000)]
[nvptx] Update insufficient launch message for variable vector_length

Update message in nvptx libgomp plugin about insufficient resources to launch
kernel, to accommodate for the fact the vector_length can now be variable.

2019-01-12  Tom de Vries  <tdevries@suse.de>

* plugin/plugin-nvptx.c (nvptx_exec): Update insufficient hardware
resources diagnostic.

From-SVN: r267890

5 years ago[nvptx] Enable large vectors
Tom de Vries [Sat, 12 Jan 2019 22:17:42 +0000 (22:17 +0000)]
[nvptx] Enable large vectors

Allow vector_length clauses to accept values larger than warp size.  Note that
this does not enable setting vector_length to values larger than warp size using
-fopenacc-dim.

2019-01-12  Tom de Vries  <tdevries@suse.de>

* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
lengths into account.

* testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: Expect
vector length to be 128.
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Expect vector
length 2097152 to be reduced to 1024 instead of 32.

From-SVN: r267889

5 years agodecl.c (cp_finish_decl): Improve error location.
Paolo Carlini [Sat, 12 Jan 2019 21:59:50 +0000 (21:59 +0000)]
decl.c (cp_finish_decl): Improve error location.

/cp
2019-01-12  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (cp_finish_decl): Improve error location.
* decl2.c (grokfield): Likewise, improve two locations.

/testsuite
2019-01-12  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp0x/pr62101.C: Test locations too.
* g++.dg/inherit/pure1.C: Likewise.

From-SVN: r267888

5 years agodecl.c (cp_finish_decl): Improve error location.
Paolo Carlini [Sat, 12 Jan 2019 21:59:03 +0000 (21:59 +0000)]
decl.c (cp_finish_decl): Improve error location.

/cp
2019-01-12  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (cp_finish_decl): Improve error location.
* decl2.c (grokfield): Likewise, improve two locations.

/testsuite
2019-01-12  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp0x/pr62101.C: Test locations too.
* g++.dg/inherit/pure1.C: Likewise.

From-SVN: r267887

5 years agognu.h (TARGET_THREAD_SSP_OFFSET): Define.
Svante Signell [Sat, 12 Jan 2019 21:17:56 +0000 (21:17 +0000)]
gnu.h (TARGET_THREAD_SSP_OFFSET): Define.

* config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
(TARGET_CAN_SPLIT_STACK): Define.
(TARGET_THREAD_SPLIT_STACK_OFFSET): Define.

From-SVN: r267886

5 years agoDocument merge process for dmd, druntime and phobos.
Iain Buclaw [Sat, 12 Jan 2019 19:50:41 +0000 (19:50 +0000)]
Document merge process for dmd, druntime and phobos.

gcc/d/ChangeLog:

* README.gcc: New file.

libphobos/ChangeLog:

* README.gcc: New file.

From-SVN: r267885

5 years agoISO_Fortran_binding_2.f90: Remove because of reports of ICEs.
Paul Thomas [Sat, 12 Jan 2019 18:34:30 +0000 (18:34 +0000)]
ISO_Fortran_binding_2.f90: Remove because of reports of ICEs.

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

* gfortran.dg/ISO_Fortran_binding_2.f90 : Remove because of
reports of ICEs.
* gfortran.dg/ISO_Fortran_binding_2.c : Ditto.

From-SVN: r267884

5 years ago* params.def (inline-unit-growth): Set to 40.
Jan Hubicka [Sat, 12 Jan 2019 18:18:23 +0000 (19:18 +0100)]
* params.def (inline-unit-growth): Set to 40.

From-SVN: r267883

5 years agotree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
Jakub Jelinek [Sat, 12 Jan 2019 16:55:45 +0000 (17:55 +0100)]
tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.

* tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.

* c-typeck.c (convert_for_assignment): Fix a comment typo.

From-SVN: r267882

5 years agogfortran.texi: Add description in sections on TS 29113 and further interoperability...
Paul Thomas [Sat, 12 Jan 2019 15:25:52 +0000 (15:25 +0000)]
gfortran.texi: Add description in sections on TS 29113 and further interoperability with C.

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

* gfortran.texi : Add description in sections on TS 29113 and
further interoperability with C.
* trans-array.c (gfc_conv_descriptor_attribute): New function.
(gfc_get_dataptr_offset): Remove static function attribute.
* trans-array.h : Add prototypes for above functions.
* trans-decl.c : Add declarations for the library functions
cfi_desc_to_gfc_desc and gfc_desc_to_cfi_desc.
* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): New function.
(gfc_conv_procedure_call): Call it for scalar and array actual
arguments, when the formal arguments are bind_c with assumed
shape or assumed rank.
* trans.h : External declarations for gfor_fndecl_cfi_to_gfc
and gfor_fndecl_gfc_to_cfi.

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

* gfortran.dg/ISO_Fortran_binding_1.f90 : New test.
* gfortran.dg/ISO_Fortran_binding_1.c : Auxilliary file for test.
* gfortran.dg/ISO_Fortran_binding_2.f90 : New test.
* gfortran.dg/ISO_Fortran_binding_2.c : Auxilliary file for test.
* gfortran.dg/bind_c_array_params_2.f90 : Change search string
for dump tree scan.

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

* ISO_Fortran_binding.h : New file.
* Makefile.am : Include ISO_Fortran_binding.c in the list of
files to compile.
* Makefile.in : Regenerated.
* gfortran.map : Add _gfortran_cfi_desc_to_gfc_desc,
_gfortran_gfc_desc_to_cfi_desc and the CFI API functions.
* runtime/ISO_Fortran_binding.c : New file containing the new
functions added to the map.

From-SVN: r267881

5 years ago[nvptx] Apply vector-partitionable routines workaround to default vl
Tom de Vries [Sat, 12 Jan 2019 10:27:34 +0000 (10:27 +0000)]
[nvptx] Apply vector-partitionable routines workaround to default vl

Make "[nvptx] Force vl32 if calling vector-partitionable routines" work as well
if vector length is set by modifying PTX_DEFAULT_VECTOR_LENGTH.

2019-01-12  Tom de Vries  <tdevries@suse.de>

* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
region calling vector-partitionable routine, set default_vector_length
to WARP_SIZE.

From-SVN: r267879

5 years ago[nvptx] Allow default vl to be overridden in nvptx_goacc_validate_dims_1
Tom de Vries [Sat, 12 Jan 2019 10:27:23 +0000 (10:27 +0000)]
[nvptx] Allow default vl to be overridden in nvptx_goacc_validate_dims_1

In nvptx_goacc_validate_dims_1, allow oacc_default_dims[DIM_VECTOR] to be
overridden, by assigning it to a new variable default_vector_length at the
start, and using it at the end.

2019-01-12  Tom de Vries  <tdevries@suse.de>

* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
variable default_vector_length.

From-SVN: r267878

5 years ago[nvptx] Verify dimension limits after applying defaults
Tom de Vries [Sat, 12 Jan 2019 10:27:12 +0000 (10:27 +0000)]
[nvptx] Verify dimension limits after applying defaults

There's a problem in oacc_validate_dims that when f.i. the worker dimension
is set using -fopenacc-dim=:32, and the vector_length is set using a
"vector_length (128)" clause, the compiler combines, accepts and emits the
values, while the combination of the two is invalid.

The reason for this is that while oacc_validate_dims validates the dimensions
using targetm.goacc.validate_dims before applying default or minimum values,
it does not do so afterwards.

Work around this in the nvptx port by applying the defaults from
oacc_default_dims at the end of nvptx_goacc_validate_dims_1, as
oacc_validate_dims would do it, and then apply the dimensions limits.

2019-01-12  Tom de Vries  <tdevries@suse.de>

PR middle-end/88703
* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
from oacc_default_dims, as oacc_validate_dims would do it, and apply
dimensions limits.

From-SVN: r267877

5 years ago[openacc] Add used parameter to TARGET_GOACC_VALIDATE_DIMS
Tom de Vries [Sat, 12 Jan 2019 10:27:00 +0000 (10:27 +0000)]
[openacc] Add used parameter to TARGET_GOACC_VALIDATE_DIMS

Add a used parameter to TARGET_GOACC_VALIDATE_DIMS, allowing a target to make
decisions in the hook implementation based on whether a dimension is used or
not.

2019-01-12  Tom de Vries  <tdevries@suse.de>

* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
(nvptx_goacc_validate_dims): Add used parameter.
* doc/tm.texi: Regenerate.
* omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
argument to call to targetm.goacc.validate_dims.
(default_goacc_validate_dims): Add used
parameter.
* target.def (validate_dims): Add used parameter in DEFHOOK.
* targhooks.h (default_goacc_validate_dims): Add used parameter.

From-SVN: r267876

5 years agore PR libfortran/88807 (misleading indentation warnings building libgfortran)
Jakub Jelinek [Sat, 12 Jan 2019 09:15:54 +0000 (10:15 +0100)]
re PR libfortran/88807 (misleading indentation warnings building libgfortran)

PR libfortran/88807
* m4/minloc0.m4: Reindent to avoid -Wmisleading-indentation warnings.
* generated/minloc0_4_i1.c: Regenerated.
* generated/minloc0_4_i2.c: Regenerated.
* generated/minloc0_4_i4.c: Regenerated.
* generated/minloc0_4_i8.c: Regenerated.
* generated/minloc0_4_i16.c: Regenerated.
* generated/minloc0_4_r4.c: Regenerated.
* generated/minloc0_4_r8.c: Regenerated.
* generated/minloc0_4_r10.c: Regenerated.
* generated/minloc0_4_r16.c: Regenerated.
* generated/minloc0_8_i1.c: Regenerated.
* generated/minloc0_8_i2.c: Regenerated.
* generated/minloc0_8_i4.c: Regenerated.
* generated/minloc0_8_i8.c: Regenerated.
* generated/minloc0_8_i16.c: Regenerated.
* generated/minloc0_8_r4.c: Regenerated.
* generated/minloc0_8_r8.c: Regenerated.
* generated/minloc0_8_r10.c: Regenerated.
* generated/minloc0_8_r16.c: Regenerated.
* generated/minloc0_16_i1.c: Regenerated.
* generated/minloc0_16_i2.c: Regenerated.
* generated/minloc0_16_i4.c: Regenerated.
* generated/minloc0_16_i8.c: Regenerated.
* generated/minloc0_16_i16.c: Regenerated.
* generated/minloc0_16_r4.c: Regenerated.
* generated/minloc0_16_r8.c: Regenerated.
* generated/minloc0_16_r10.c: Regenerated.
* generated/minloc0_16_r16.c: Regenerated.

From-SVN: r267875

5 years agoRemove svn:executable property from a couple of text files
Jakub Jelinek [Sat, 12 Jan 2019 00:20:04 +0000 (01:20 +0100)]
Remove svn:executable property from a couple of text files
which shouldn't be executable.

From-SVN: r267873

5 years agoDaily bump.
GCC Administrator [Sat, 12 Jan 2019 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r267872

5 years agoPR libstdc++/88811 fix typo introduced in r266569
Jonathan Wakely [Sat, 12 Jan 2019 00:12:20 +0000 (00:12 +0000)]
PR libstdc++/88811 fix typo introduced in r266569

PR libstdc++/88811
PR libstdc++/83306
* src/filesystem/path.cc: Fix typo. If first path is empty, show []
before second path.
* testsuite/experimental/filesystem/filesystem_error/cons.cc: New
test.

From-SVN: r267868

5 years agoDocument C++20 library status
Jonathan Wakely [Fri, 11 Jan 2019 23:41:15 +0000 (23:41 +0000)]
Document C++20 library status

* doc/xml/manual/intro.xml: Include new section.
* doc/xml/manual/status_cxx2017.xml: Document more
implementation-defined properties of the library.
* doc/xml/manual/status_cxx2020.xml: Document C++2a status.
* doc/html/*: Regenerate.

From-SVN: r267867

5 years agoP0357R3 reference_wrapper for incomplete types
Jonathan Wakely [Fri, 11 Jan 2019 23:41:11 +0000 (23:41 +0000)]
P0357R3 reference_wrapper for incomplete types

This patch implements the C++2a proposal to allow incomplete types in
std::reference_wrapper, which was previously undefined.

The change cannot be implemented for earlier standards, because prior to
C++2a std::reference_wrapper has a weak result type, so must inspect the
template argument to see if it defines a nested result_type member. That
is deprecated (but still required) in C++17, and removed from C++2a.

The removal of the base class from reference_wrapper is a potential ABI
change, as it could alter the layout of a type which derives from
reference_wrapper<T> and from an empty type with _Weak_result_type<T> as
a base class.  Previously the repeated _Weak_result_type<T> base class
would have prevented the empty base-class optimization, but if
reference_wrapper<T> no longer derives from it, the empty class could be
placed at the same address as the reference_wrapper<T> base.  In
practice, the only types which derive from _Weak_result_type or from
_Reference_wrapper_base_memfun or any of its base classes are non-empty
types defined in libstdc++: std::reference_wrapper, std::function, and
std::_Bind. As they are non-empty types, they are not eligible for EBO
anyway.

* include/bits/refwrap.h [__cplusplus > 201703L]
(_Refwrap_base_arg1, _Refwrap_base_arg2, _Reference_wrapper_base)
(_Reference_wrapper_base_memfun): Do not define for C++2a.
(reference_wrapper): Do not derive from _Reference_wrapper_base_memfun
for C++2a.
(reference_wrapper::operator()): Add static assertion.
* testsuite/20_util/reference_wrapper/incomplete.cc: New test.

From-SVN: r267866

5 years agoP0972R0 <chrono> zero(), min(), and max() should be noexcept
Jonathan Wakely [Fri, 11 Jan 2019 23:41:05 +0000 (23:41 +0000)]
P0972R0 <chrono> zero(), min(), and max() should be noexcept

This paper has been included in the C++20 draft, but the changes to add
noexcept can be made unconditionally, to apply for C++11 too.

* include/std/chrono (duration_values::zero(), duration_values::min())
(duration_values::max()): Add noexcept.
(duration::zero(), duration::min(), duration::max()): Likewise.
(time_point::zero(), time_point::min(), time_point::max()): Likewise.
* testsuite/20_util/duration/requirements/noexcept.cc: New test.
* testsuite/20_util/time_point/requirements/noexcept.cc: New test.

From-SVN: r267865

5 years agore PR fortran/35031 (ELEMENTAL procedure with BIND(C))
Steven G. Kargl [Fri, 11 Jan 2019 23:41:04 +0000 (23:41 +0000)]
re PR fortran/35031 (ELEMENTAL procedure with BIND(C))

2019-01-11  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/35031
* decl.c (gfc_match_entry): Check for F2018:C1546.  Fix nearby
mis-indentation.

2019-01-11  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/35031
* gfortran.dg/pr35031.f90: new test.

From-SVN: r267864

5 years agoFix location of __cpp_lib_erase_if macro
Jonathan Wakely [Fri, 11 Jan 2019 23:40:58 +0000 (23:40 +0000)]
Fix location of __cpp_lib_erase_if macro

This macro should only be defined for C++2a, not C++17.

* include/std/version (__cpp_lib_erase_if): Move to C++20 group.

From-SVN: r267863

5 years agoPR c++/88692, c++/87882 - -Wredundant-move false positive with *this.
Marek Polacek [Fri, 11 Jan 2019 23:21:40 +0000 (23:21 +0000)]
PR c++/88692, c++/87882 - -Wredundant-move false positive with *this.

* typeck.c (maybe_warn_pessimizing_move): Return if ARG isn't
ADDR_EXPR.

* g++.dg/cpp0x/Wredundant-move5.C: New test.
* g++.dg/cpp0x/Wredundant-move6.C: New test.

From-SVN: r267862

5 years agocompiler: pad structs ending with zero-sized field
Ian Lance Taylor [Fri, 11 Jan 2019 23:16:38 +0000 (23:16 +0000)]
compiler: pad structs ending with zero-sized field

    For a struct with zero-sized last field, the address of the
    field falls out of the object boundary, which confuses the
    garbage collector. Pad an extra byte in this case.

    Reviewed-on: https://go-review.googlesource.com/c/157557

From-SVN: r267861

5 years agoPR c++/88312 - pack expansion of decltype.
Jason Merrill [Fri, 11 Jan 2019 22:37:01 +0000 (17:37 -0500)]
PR c++/88312 - pack expansion of decltype.

The standard doesn't really talk about an expression depending on the number
of elements of a pack, but that's definitely an important form of template
argument dependence.

* pt.c (instantiation_dependent_r): A template non-type parameter
pack is instantiation-dependent.

From-SVN: r267860

5 years agoPR c++/88613 - ICE with use of const var in lambda.
Jason Merrill [Fri, 11 Jan 2019 22:36:20 +0000 (17:36 -0500)]
PR c++/88613 - ICE with use of const var in lambda.

The issue here was that we were cp_folding a location wrapper around a
lambda capture proxy before it had been mark_rvalue_used.  I considered
adding mark_rvalue_use calls to build_new_op_1, but it seems appropriate to
have them in cp_fold_maybe_rvalue when we know we're trying to produce an
rvalue.

The change to mark_use is for a related issue: when we change the operand of
the location wrapper from VAR_DECL to INTEGER_CST, we need the TREE_CODE of
the location wrapper to change as well, from VIEW_CONVERT_EXPR to
NON_LVALUE_EXPR.

* expr.c (mark_use): Fix location wrapper handling.
* cp-gimplify.c (cp_fold_maybe_rvalue): Call mark_rvalue_use.

From-SVN: r267859

5 years agore PR middle-end/85956 (ICE in wide_int_to_tree_1, at tree.c:1549)
Jakub Jelinek [Fri, 11 Jan 2019 21:03:53 +0000 (22:03 +0100)]
re PR middle-end/85956 (ICE in wide_int_to_tree_1, at tree.c:1549)

PR middle-end/85956
PR lto/88733
* tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
field.
* tree-inline.c (remap_type_1): Formatting fix.  If TYPE_MAX_VALUE of
ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
* omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
fortran/
* trans-openmp.c: Include attribs.h.
(gfc_walk_alloc_comps, gfc_omp_clause_linear_ctor): Handle
VAR_DECL max bound with "omp dummy var" attribute like NULL or
error_mark_node - recompute number of elts independently.
testsuite/
* c-c++-common/gomp/pr85956.c: New test.
* g++.dg/gomp/pr88733.C: New test.

From-SVN: r267858

5 years agoPR C++/88114 Gen destructor of an abstract class
Tobias Burnus [Fri, 11 Jan 2019 19:40:13 +0000 (20:40 +0100)]
PR C++/88114 Gen destructor of an abstract class

        PR C++/8811
        * decl2.c (maybe_emit_vtables): If needed, generate code for
        the destructor of an abstract class.
        (mark_used): Update comment for older function-name change.

        PR C++/88114
        * g++.dg/cpp0x/defaulted61.C: New.
        * g++.dg/cpp0x/defaulted62.C: New.

From-SVN: r267855

5 years agore PR rtl-optimization/87305 (Segfault in end_hard_regno in setup_live_pseudos_and_sp...
Vladimir Makarov [Fri, 11 Jan 2019 19:25:31 +0000 (19:25 +0000)]
re PR rtl-optimization/87305 (Segfault in end_hard_regno in setup_live_pseudos_and_spill_after_risky_transforms on aarch64 big-endian)

2019-01-11  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/87305
* lra-assigns.c
(setup_live_pseudos_and_spill_after_risky_transforms): Add code
for little endian pseudos used as paradoxical subreg.

From-SVN: r267854

5 years agore PR tree-optimization/88693 (Wrong code since r263018)
Jakub Jelinek [Fri, 11 Jan 2019 19:04:32 +0000 (20:04 +0100)]
re PR tree-optimization/88693 (Wrong code since r263018)

PR tree-optimization/88693
* tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
for STRING_CSTs that don't contain any NUL characters in the first
TREE_STRING_LENGTH bytes.

* gcc.c-torture/execute/pr88693.c: New test.

From-SVN: r267852

5 years agore PR target/88777 (Out-of-range offsets building glibc test-tgmath2.c for hppa-linux...
Alan Modra [Fri, 11 Jan 2019 18:44:00 +0000 (05:14 +1030)]
re PR target/88777 (Out-of-range offsets building glibc test-tgmath2.c for hppa-linux-gnu)

PR 88777
PR 88614
* genattrtab.c (min_fn): Don't translate values.
(min_attr_value): Return INT_MAX when the value can't be calculated.
Return minimum among any values that can be calculated.
(max_attr_value): Adjust.

From-SVN: r267851

5 years ago* Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
Jakub Jelinek [Fri, 11 Jan 2019 17:01:25 +0000 (18:01 +0100)]
* Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).

From-SVN: r267850

5 years agoRemove trailing whitespace from latest commit.
Jakub Jelinek [Fri, 11 Jan 2019 16:55:13 +0000 (17:55 +0100)]
Remove trailing whitespace from latest commit.

From-SVN: r267849

5 years agoaarch64.c (aarch64_simd_call_p): New function.
Steve Ellcey [Fri, 11 Jan 2019 16:50:17 +0000 (16:50 +0000)]
aarch64.c (aarch64_simd_call_p): New function.

2019-01-11  Steve Ellcey  <sellcey@marvell.com>

* config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
(aarch64_hard_regno_call_part_clobbered): Add insn argument.
(aarch64_return_call_with_max_clobbers): New function.
(TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
* config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
argument.
* config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
* config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
* config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
* config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
* cselib.c (cselib_process_insn): Add argument to
targetm.hard_regno_call_part_clobbered call.
* ira-conflicts.c (ira_build_conflicts): Ditto.
* ira-costs.c (ira_tune_allocno_costs): Ditto.
* lra-constraints.c (inherit_reload_reg): Ditto.
* lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
* lra-lives.c (check_pseudos_live_through_calls): Add call_insn
argument.  Call targetm.return_call_with_max_clobbers.
Add argument to targetm.hard_regno_call_part_clobbered call.
(calls_have_same_clobbers_p): New function.
(process_bb_lives): Add call_insn and last_call_insn variables.
Pass call_insn to check_pseudos_live_through_calls.
Modify if stmt to check targetm.return_call_with_max_clobbers.
Update setting of flush variable.
(lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
to false.
* lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
* regcprop.c (copyprop_hardreg_forward_1): Add argument to
        targetm.hard_regno_call_part_clobbered call.
* reginfo.c (choose_hard_reg_mode): Ditto.
* regrename.c (check_new_reg_p): Ditto.
* reload.c (find_equiv_reg): Ditto.
* reload1.c (emit_reload_insns): Ditto.
* sched-deps.c (deps_analyze_insn): Ditto.
* sel-sched.c (init_regs_for_mode): Ditto.
(mark_unavailable_hard_regs): Ditto.
* targhooks.c (default_dwarf_frame_reg_mode): Ditto.
* target.def (hard_regno_call_part_clobbered): Add insn argument.
(return_call_with_max_clobbers): New target function.
* doc/tm.texi: Regenerate.
* doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
* hooks.c (hook_bool_uint_mode_false): Change to
hook_bool_insn_uint_mode_false.
* hooks.h (hook_bool_uint_mode_false): Ditto.

From-SVN: r267848

5 years agotype_traits (__cpp_lib_is_constant_evaluated): Define.
Jakub Jelinek [Fri, 11 Jan 2019 16:01:23 +0000 (17:01 +0100)]
type_traits (__cpp_lib_is_constant_evaluated): Define.

* include/std/type_traits (__cpp_lib_is_constant_evaluated): Define.
* include/std/version (__cpp_lib_is_constant_evaluated): Define.

From-SVN: r267847

5 years agoaarch64.c (aarch64_simd_call_p): New function.
Steve Ellcey [Fri, 11 Jan 2019 15:53:02 +0000 (15:53 +0000)]
aarch64.c (aarch64_simd_call_p): New function.

2019-01-11  Steve Ellcey  <sellcey@marvell.com>

* config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
(aarch64_remove_extra_call_preserved_regs): New function.
(TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
* doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
* doc/tm.texi: Regenerate.
* final.c (get_call_reg_set_usage): Call new hook.
* target.def (remove_extra_call_preserved_regs): New hook.
* targhooks.c (default_remove_extra_call_preserved_regs): New function.
* targhooks.h (default_remove_extra_call_preserved_regs): New function.

From-SVN: r267846

5 years agoPR libstdc++/88802 define std::hash<nullptr_t> for C++17
Jonathan Wakely [Fri, 11 Jan 2019 14:54:49 +0000 (14:54 +0000)]
PR libstdc++/88802 define std::hash<nullptr_t> for C++17

PR libstdc++/88802
* include/bits/functional_hash.h (hash<nullptr_t>): Define
specialization for C++17 (P0513R0, LWG 2817).
* testsuite/20_util/hash/nullptr.cc: New test.

From-SVN: r267845

5 years agoFix arm testism regression.
Tamar Christina [Fri, 11 Jan 2019 14:20:58 +0000 (14:20 +0000)]
Fix arm testism regression.

gcc/testsuite/ChangeLog:

2019-01-11  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c: Require neon
and add options.

From-SVN: r267843

5 years agoBetter distinguish OpenACC and OpenMP sections in libgomp.texi
Thomas Schwinge [Fri, 11 Jan 2019 13:55:01 +0000 (14:55 +0100)]
Better distinguish OpenACC and OpenMP sections in  libgomp.texi

2019-01-11  Thomas Schwinge  <thomas@codesourcery.com>
            James Norris  <jnorris@codesourcery.com>

* libgomp.texi: Better distinguish OpenACC and OpenMP "Runtime
Library Routines", and "Environment Variables".

Co-Authored-By: James Norris <jnorris@codesourcery.com>
From-SVN: r267841

5 years agoAdd a testcase (PR middle-end/88758).
Martin Liska [Fri, 11 Jan 2019 13:20:01 +0000 (14:20 +0100)]
Add a testcase (PR middle-end/88758).

2019-01-11  Martin Liska  <mliska@suse.cz>

PR middle-end/88758
* g++.dg/lto/pr88758_0.C: New test.
* g++.dg/lto/pr88758_1.C: New test.

From-SVN: r267840

5 years agore PR bootstrap/88714 (bootstrap comparison failure on armv7l since r265398)
Jakub Jelinek [Fri, 11 Jan 2019 12:05:54 +0000 (13:05 +0100)]
re PR bootstrap/88714 (bootstrap comparison failure on armv7l since r265398)

PR bootstrap/88714
* passes.c (finish_optimization_passes): Call print_combine_total_stats
inside of pass_combine_1 dump rather than pass_profile_1.

From-SVN: r267839

5 years ago[nvptx] Don't allow vector_length 64 with num_workers 16
Tom de Vries [Fri, 11 Jan 2019 11:46:43 +0000 (11:46 +0000)]
[nvptx] Don't allow vector_length 64 with num_workers 16

When using a compiler build with:
...
+#define PTX_DEFAULT_VECTOR_LENGTH PTX_CTA_SIZE
...

consider a test-case:
...
int
main (void)
{
  #pragma acc parallel vector_length (64)
    #pragma acc loop worker
    for (unsigned int i = 0; i < 32; i++)
      #pragma acc loop vector
      for (unsigned int j = 0; j < 64; j++)
        ;

  return 0;
}
...

If num_workers is 16, either because:
- we add a "num_workers (16)" clause on the parallel directive, or
- we set "GOMP_OPENACC_DIM=:16:", or
- the libgomp plugin chooses 16 num_workers
we run into an illegal instruction at runtime, because a bar.sync instruction
tries to use a barrier 16.  The instruction is illegal, because ptx supports
only 16 barriers per CTA, and the valid range is 0..15.

The problem is that with a warp-multiple vector length, we use a code generation
scheme with a per-worker barrier.  And because barrier zero is reserved for
per-cta barrier, only the remaining 15 barriers can be used as per-worker
barrier, and consequently we can't use num_workers larger than 15.

This problem occurs only for vector_length 64.  For vector_length 32, we use a
different code generation scheme, and for vector_length >= 96, the maximum
num_workers is not big enough not to trigger this problem.

Also, this problem only occurs for num_workers 16.  As explained above,
num_workers 15 is safe to use, and 16 is already the maximum num_workers for
vector_length 64.

This patch fixes the problem in both the compiler (handling "num_workers (16)")
and in the libgomp nvptx plugin (with and without "GOMP_OPENACC_DIM=:16:").

2019-01-11  Tom de Vries  <tdevries@suse.de>

* config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
(PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
(PTX_NUM_PER_WORKER_BARRIERS): Define.
(nvptx_apply_dim_limits): Prevent vector_length 64 and
num_workers 16.

* plugin/plugin-nvptx.c (nvptx_exec): Prevent vector_length 64 and
num_workers 16.

From-SVN: r267838

5 years ago[nvptx] Move PTX_CTA_SIZE up
Tom de Vries [Fri, 11 Jan 2019 11:46:31 +0000 (11:46 +0000)]
[nvptx] Move PTX_CTA_SIZE up

Move the defition of PTX_CTA_SIZE up in nvptx.c.

2019-01-11  Tom de Vries  <tdevries@suse.de>

* config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.

From-SVN: r267837

5 years ago[libgomp, testsuite, openacc] Remove -foffload=-w in reduction-[1-5].c
Tom de Vries [Fri, 11 Jan 2019 11:46:06 +0000 (11:46 +0000)]
[libgomp, testsuite, openacc] Remove -foffload=-w in reduction-[1-5].c

Before the commit "[libgomp, testsuite, openacc] Don't use const int for
dimensions", the "const int" construct was used to set launch dimensions in
reductions-[1-5].c.  In the case of -xc -O0, the const int is implemented as a
variable by the C front-end.  Consequently, the nvptx back-end generated
warnings that vector_length was overridden to be hard-coded, rather than left to
be set at runtime.  The test-cases silenced these warnings by switching off all
warnings in the accelerator compiler using "-foffload=-w".

Given that no warnings occur anymore, remove the "-foffload=-w" setting.

2019-01-11  Tom de Vries  <tdevries@suse.de>

* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Remove
-foffload=-w.
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Same.
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Same.
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Same.
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Same.

From-SVN: r267836

5 years ago[nvptx, testsuite, openacc, libgomp] Add insufficient-resources.c
Tom de Vries [Fri, 11 Jan 2019 11:45:55 +0000 (11:45 +0000)]
[nvptx, testsuite, openacc, libgomp] Add insufficient-resources.c

Add a test-case that tests the "insufficient resources" fatal in the nvptx
libgomp plugin.

2019-01-11  Tom de Vries  <tdevries@suse.de>

* testsuite/libgomp.oacc-c-c++-common/insufficient-resources.c: New
test.

From-SVN: r267835

5 years agoPR libstdc++/88125 remove duplicate entry in linker script
Jonathan Wakely [Fri, 11 Jan 2019 11:39:45 +0000 (11:39 +0000)]
PR libstdc++/88125 remove duplicate entry in linker script

PR libstdc++/88125
* config/abi/pre/gnu.ver (GLIBCXX_3.4.6): Remove unused duplicate
pattern for std::basic_stringbuf::str().

From-SVN: r267834

5 years agox86-64: {,V}CVT{,U}SI2Sx are ambiguous without suffix
Jan Beulich [Fri, 11 Jan 2019 11:20:40 +0000 (11:20 +0000)]
x86-64: {,V}CVT{,U}SI2Sx are ambiguous without suffix

For 64-bit these should not be emitted without suffix in AT&T mode (as
being ambiguous that way); the suffixes are benign for 32-bit. For
consistency also omit the suffix in Intel mode for {,V}CVTSI2SxQ.

The omission has originally (prior to rev 260691) lead to wrong code
being generated for the 64-bit unsigned-to-float/double conversions (as
gas guesses an L suffix instead of the required Q one when the operand
is in memory). In all remaining cases (being changed here) the omission
would "just" lead to warnings with future gas versions.

As a result, arrange to check for the L suffixes in 32-bit test cases.

In order for related test cases to actually test what they're supposed
to test, add (seemingly unrelated) a few empty "asm volatile()".
Presumably there are more where constant propagation voids the intended
effect of the tests, but these are ones helping make sure the assembler
actually still assembles correctly the output after the changes here.

From-SVN: r267833

5 years agoFix incorrect linker script patterns
Jonathan Wakely [Fri, 11 Jan 2019 10:25:46 +0000 (10:25 +0000)]
Fix incorrect linker script patterns

The recent changes to support operator<<(nullptr_t) changed the glob
patterns for existing operator<<(T) overloads, but did so incorrectly so
they still matched the new symbols. That broke Solaris bootstrap. This
patch replaces each of the existing globs by two more precise ones,
which match the old symbols but not the new ones.

* config/abi/pre/gnu.ver (GLIBCXX_3.4): Correct recent changes to
basic_ostream::operator<< patterns.

From-SVN: r267832

5 years agore PR rtl-optimization/88296 (Infinite loop in lra_split_hard_reg_for)
Jakub Jelinek [Fri, 11 Jan 2019 10:17:12 +0000 (11:17 +0100)]
re PR rtl-optimization/88296 (Infinite loop in lra_split_hard_reg_for)

PR rtl-optimization/88296
* gcc.target/i386/pr88296.c: New test.

From-SVN: r267831

5 years agodecl.c (start_decl): Improve error location.
Paolo Carlini [Fri, 11 Jan 2019 09:02:43 +0000 (09:02 +0000)]
decl.c (start_decl): Improve error location.

/cp
2019-01-11  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (start_decl): Improve error location.
(grokdeclarator): Likewise, improve two locations.

/testsuite
2019-01-11  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/diagnostic/extern-initialized.C: New.
* g++.dg/ext/dllimport-initialized.C: Likewise.

From-SVN: r267830

5 years agore PR fortran/59345 (_gfortran_internal_pack on compiler generated temps)
Thomas Koenig [Fri, 11 Jan 2019 06:32:10 +0000 (06:32 +0000)]
re PR fortran/59345 (_gfortran_internal_pack on compiler generated temps)

2019-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/59345
* trans-array.c (gfc_conv_parameter_array):  Temporary
arrays generated for expressions do not need to be repacked.

2019-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/59345
* gfortran.dg/internal_pack_16.f90: New test.

From-SVN: r267829

5 years agoDaily bump.
GCC Administrator [Fri, 11 Jan 2019 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r267828

5 years agore PR target/88785 (ICE in as_a, at machmode.h:353)
Jakub Jelinek [Thu, 10 Jan 2019 23:20:19 +0000 (00:20 +0100)]
re PR target/88785 (ICE in as_a, at machmode.h:353)

PR target/88785
* config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
define_expand.
(*float<floatunssuffix>v2div2sf2): New define_insn.
(float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
(*float<floatunssuffix>v2div2sf2_mask): New define_insn.
(*float<floatunssuffix>v2div2sf2_mask_1): Replace
subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
match_operands with "const0_operand" "C".

* g++.target/i386/pr88785.C: New test.

From-SVN: r267825

5 years agogcc/ChangeLog:
Tamar Christina [Thu, 10 Jan 2019 22:28:00 +0000 (22:28 +0000)]
gcc/ChangeLog:

2019-01-10  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/aarch64-builtins.c
(aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
(aarch64_init_simd_builtins): ...Here.

From-SVN: r267824

5 years agore PR rtl-optimization/87305 (Segfault in end_hard_regno in setup_live_pseudos_and_sp...
Vladimir Makarov [Thu, 10 Jan 2019 21:02:50 +0000 (21:02 +0000)]
re PR rtl-optimization/87305 (Segfault in end_hard_regno in setup_live_pseudos_and_spill_after_risky_transforms on aarch64 big-endian)

2019-01-10  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/87305
* lra-assigns.c
(setup_live_pseudos_and_spill_after_risky_transforms): Check
allocation for big endian pseudos used as paradoxical subregs and
spill them if it is wrong.
* lra-constraints.c (lra_constraints): Add a comment.

2019-01-10  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/87305
* gcc.target/aarch64/pr87305.c: New.

From-SVN: r267823

5 years agore PR tree-optimization/88792 (wrong-code in RPO VN since r263875)
Richard Biener [Thu, 10 Jan 2019 18:58:08 +0000 (18:58 +0000)]
re PR tree-optimization/88792 (wrong-code in RPO VN since r263875)

2019-01-10  Richard Biener  <rguenther@suse.de>

PR tree-optimization/88792
* tree-ssa-pre.c (get_representative_for): Do not return a
value-number here.

* gcc.dg/torture/pr88792.c: New testcase.

From-SVN: r267821

5 years agore PR fortran/86322 (ICE in reference_record with data statement)
Steven G. Kargl [Thu, 10 Jan 2019 18:45:38 +0000 (18:45 +0000)]
re PR fortran/86322 (ICE in reference_record with data statement)

2019-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/86322
* decl.c (top_var_list): Set locus of expr.
(gfc_match_data): Detect pointer on non-rightmost part-refs.

2019-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/86322
* gfortran.dg/pr86322_1.f90: New test.
* gfortran.dg/pr86322_2.f90: Ditto.
* gfortran.dg/pr86322_3.f90: Ditto.

From-SVN: r267820

5 years ago[Committed, AArch64] Disable tests for ilp32.
Sudakshina Das [Thu, 10 Jan 2019 17:29:54 +0000 (17:29 +0000)]
[Committed, AArch64] Disable tests for ilp32.

Currently Return Address Signing is only supported in lp64. Thus the
tests that I added recently (that enables return address signing by the
mbranch-protection=standard option), should also be exempted from testing in
ilp32. This patch adds the needed dg-require-effective-target directive in the
tests.

*** gcc/testsuite/ChangeLog ***

2019-01-10  Sudakshina Das  <sudi.das@arm.com>

* gcc.target/aarch64/bti-1.c: Exempt for ilp32.
* gcc.target/aarch64/bti-2.c: Likewise.
* gcc.target/aarch64/bti-3.c: Likewise.

Committed as obvious.

From-SVN: r267818

5 years agore PR middle-end/84877 (Local stack copy of BLKmode parameter on the stack is not...
Jakub Jelinek [Thu, 10 Jan 2019 15:44:16 +0000 (16:44 +0100)]
re PR middle-end/84877 (Local stack copy of BLKmode parameter on the stack is not aligned when the requested alignment exceeds MAX_SUPPORTED_STACK_ALIGNMENT)

PR middle-end/84877
PR bootstrap/88450
* function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
(assign_parm_setup_block): Do the argument slot realignment here
instead.

From-SVN: r267812

5 years agoFix filesystem::last_write_time failure with 32-bit time_t
Jonathan Wakely [Thu, 10 Jan 2019 15:39:28 +0000 (15:39 +0000)]
Fix filesystem::last_write_time failure with 32-bit time_t

* testsuite/27_io/filesystem/operations/last_write_time.cc: Fix
test failures on targets with 32-bit time_t.

From-SVN: r267811

5 years agoDefine __cpp_lib_erase_if feature test macro
Jonathan Wakely [Thu, 10 Jan 2019 13:49:31 +0000 (13:49 +0000)]
Define __cpp_lib_erase_if feature test macro

The C++2a draft specifies the value 201811L for this, but as an
extension we return the number of elements erased. This is expected to
be standardised, so the macro has the value 201900L until a proper value
is specified in the draft.

* include/bits/erase_if.h: Define __cpp_lib_erase_if.
* include/std/deque: Likewise.
* include/std/forward_list: Likewise.
* include/std/list: Likewise.
* include/std/string: Likewise.
* include/std/vector: Likewise.
* include/std/version: Likewise.
* testsuite/21_strings/basic_string/erasure.cc: Test macro.
* testsuite/23_containers/deque/erasure.cc: Likewise.
* testsuite/23_containers/forward_list/erasure.cc: Likewise.
* testsuite/23_containers/list/erasure.cc: Likewise.
* testsuite/23_containers/map/erasure.cc: Likewise.
* testsuite/23_containers/set/erasure.cc: Likewise.
* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
* testsuite/23_containers/vector/erasure.cc: Likewise.

From-SVN: r267810

5 years agoCheck AI_NUMERICSERV is defined before using it
Jonathan Wakely [Thu, 10 Jan 2019 13:21:54 +0000 (13:21 +0000)]
Check AI_NUMERICSERV is defined before using it

The AI_NUMERICSERV constant is missing from old Darwin systems, so only
use it if it's supported.

* include/experimental/internet [AI_NUMERICSERV]
(resolver_base::numeric_service): Define conditionally.
* testsuite/experimental/net/internet/resolver/base.cc: Test it
conditionally.
* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
Likewise.

From-SVN: r267809

5 years agoImplement LWG 2221: formatted output operator for nullptr
Ville Voutilainen [Thu, 10 Jan 2019 13:14:57 +0000 (15:14 +0200)]
Implement LWG 2221: formatted output operator for nullptr

2019-01-10  Ville Voutilainen  <ville.voutilainen@gmail.com>
    Jonathan Wakely  <jwakely@redhat.com>

Implement LWG 2221
* config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten patterns.
(GLIBCXX_3.4.26): Add new exports.
* include/Makefile.am: Add ostream-inst.cc. Move string-inst.cc to
correct list of sources.
* include/Makefile.in: Regenerate.
* include/std/ostream (operator<<(nullptr_t)): New member function.
* src/c++17/ostream-inst.cc: New file.
* testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: New
test.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r267808

5 years agoAdd testcase from PR71959
Nathan Sidwell [Thu, 10 Jan 2019 12:32:03 +0000 (12:32 +0000)]
Add testcase from PR71959

libgomp/

PR lto/71959
* testsuite/libgomp.oacc-c++/pr71959-aux.cc: New.
* testsuite/libgomp.oacc-c++/pr71959.C: New.

Co-Authored-By: Julian Brown <julian@codesourcery.com>
From-SVN: r267806

5 years agoARM: fix -masm-syntax-unified (PR88648)
Stefan Agner [Thu, 10 Jan 2019 11:36:42 +0000 (12:36 +0100)]
ARM: fix -masm-syntax-unified (PR88648)

This allows to use unified asm syntax when compiling for the
ARM instruction. This matches documentation and seems what the
initial patch was intended doing when the flag got added.

2019-01-10  Stefan Agner  <stefan@agner.ch>

PR target/88648
* config/arm/arm.c (arm_option_override_internal): Force
opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.

* gcc.target/arm/pr88648-asm-syntax-unified.c: Add test to
check if -masm-syntax-unified gets applied properly.

From-SVN: r267804

5 years agoInclude name of test in filesystem-test.XXXXXX filenames
Jonathan Wakely [Thu, 10 Jan 2019 11:12:00 +0000 (11:12 +0000)]
Include name of test in filesystem-test.XXXXXX filenames

Also fix some tests that were not cleaning up after themselves, as
identified by the change to nonexistent_path.

* testsuite/util/testsuite_fs.h (nonexistent_path): Include name
of the source file containing the caller.
* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Remove
directories created by test.
* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
Likewise.
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
Likewise.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Likewise.

From-SVN: r267801

5 years agore PR tree-optimization/88775 (Optimize std::string assignment)
Jakub Jelinek [Thu, 10 Jan 2019 10:56:56 +0000 (11:56 +0100)]
re PR tree-optimization/88775 (Optimize std::string assignment)

PR tree-optimization/88775
* include/bits/stl_function.h (greater<_Tp*>::operator(),
less<_Tp*>::operator(), greater_equal<_Tp*>::operator(),
less_equal<_Tp*>::operator()): Use __builtin_is_constant_evaluated
instead of __builtin_constant_p if available.  Don't bother with
the pointer comparison in C++11 and earlier.

From-SVN: r267800

5 years agore PR c/88568 ('dllimport' no longer implies 'extern' in C)
Jakub Jelinek [Thu, 10 Jan 2019 10:44:46 +0000 (11:44 +0100)]
re PR c/88568 ('dllimport' no longer implies 'extern' in C)

PR c/88568
* attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
DECL_EXTERNAL.

* gcc.dg/pr88568.c: New test.

From-SVN: r267799

5 years agoFix formatting
Eric Botcazou [Thu, 10 Jan 2019 07:21:35 +0000 (07:21 +0000)]
Fix formatting

From-SVN: r267797

5 years agoarm-builtins.c (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
Tamar Christina [Thu, 10 Jan 2019 03:34:06 +0000 (03:34 +0000)]
arm-builtins.c (enum arm_type_qualifiers): Add qualifier_lane_pair_index.

2019-01-10  Tamar Christina  <tamar.christina@arm.com>

* config/arm/arm-builtins.c
(enum arm_type_qualifiers): Add qualifier_lane_pair_index.
(MAC_LANE_PAIR_QUALIFIERS): New.
(arm_expand_builtin_args): Use it.
(arm_expand_builtin_1): Likewise.
* config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
* config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
* config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
* config/arm/arm_neon.h:
(vcadd_rot90_f16): New.
(vcaddq_rot90_f16): New.
(vcadd_rot270_f16): New.
(vcaddq_rot270_f16): New.
(vcmla_f16): New.
(vcmlaq_f16): New.
(vcmla_lane_f16): New.
(vcmla_laneq_f16): New.
(vcmlaq_lane_f16): New.
(vcmlaq_laneq_f16): New.
(vcmla_rot90_f16): New.
(vcmlaq_rot90_f16): New.
(vcmla_rot90_lane_f16): New.
(vcmla_rot90_laneq_f16): New.
(vcmlaq_rot90_lane_f16): New.
(vcmlaq_rot90_laneq_f16): New.
(vcmla_rot180_f16): New.
(vcmlaq_rot180_f16): New.
(vcmla_rot180_lane_f16): New.
(vcmla_rot180_laneq_f16): New.
(vcmlaq_rot180_lane_f16): New.
(vcmlaq_rot180_laneq_f16): New.
(vcmla_rot270_f16): New.
(vcmlaq_rot270_f16): New.
(vcmla_rot270_lane_f16): New.
(vcmla_rot270_laneq_f16): New.
(vcmlaq_rot270_lane_f16): New.
(vcmlaq_rot270_laneq_f16): New.
(vcadd_rot90_f32): New.
(vcaddq_rot90_f32): New.
(vcadd_rot270_f32): New.
(vcaddq_rot270_f32): New.
(vcmla_f32): New.
(vcmlaq_f32): New.
(vcmla_lane_f32): New.
(vcmla_laneq_f32): New.
(vcmlaq_lane_f32): New.
(vcmlaq_laneq_f32): New.
(vcmla_rot90_f32): New.
(vcmlaq_rot90_f32): New.
(vcmla_rot90_lane_f32): New.
(vcmla_rot90_laneq_f32): New.
(vcmlaq_rot90_lane_f32): New.
(vcmlaq_rot90_laneq_f32): New.
(vcmla_rot180_f32): New.
(vcmlaq_rot180_f32): New.
(vcmla_rot180_lane_f32): New.
(vcmla_rot180_laneq_f32): New.
(vcmlaq_rot180_lane_f32): New.
(vcmlaq_rot180_laneq_f32): New.
(vcmla_rot270_f32): New.
(vcmlaq_rot270_f32): New.
(vcmla_rot270_lane_f32): New.
(vcmla_rot270_laneq_f32): New.
(vcmlaq_rot270_lane_f32): New.
(vcmlaq_rot270_laneq_f32): New.
* config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
* config/arm/neon.md (neon_vcmla_lane<rot><mode>,
neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
* config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
* config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
(arm_option_reconfigure_globals): Use them.
* config/arm/iterators.md (VDF, VQ_HSF): New.
(VCADD, VCMLA): New.
(VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
* config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
* config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.

gcc/testsuite/ChangeLog:

2019-01-10  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/advsimd-intrinsics/vector-complex.c: Add AArch32 regexpr.
* gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c: Likewise.

From-SVN: r267796

5 years agoaarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
Tamar Christina [Thu, 10 Jan 2019 03:30:59 +0000 (03:30 +0000)]
aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.

gcc/ChangeLog:

2019-01-10  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
(emit-rtl.h): Include.
(TYPES_QUADOP_LANE_PAIR): New.
(aarch64_simd_expand_args): Use it.
(aarch64_simd_expand_builtin): Likewise.
(AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
(FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
(aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
(aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
  AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
* config/aarch64/iterators.md (FCMLA_maybe_lane): New.
* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
* config/aarch64/aarch64-simd-builtins.def (fcadd90fcadd270, fcmla0, fcmla90,
fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
* config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
aarch64_fcmla<rot><mode>): New.
* config/aarch64/arm_neon.h:
(vcadd_rot90_f16): New.
(vcaddq_rot90_f16): New.
(vcadd_rot270_f16): New.
(vcaddq_rot270_f16): New.
(vcmla_f16): New.
(vcmlaq_f16): New.
(vcmla_lane_f16): New.
(vcmla_laneq_f16): New.
(vcmlaq_lane_f16): New.
(vcmlaq_rot90_lane_f16): New.
(vcmla_rot90_laneq_f16): New.
(vcmla_rot90_lane_f16): New.
(vcmlaq_rot90_f16): New.
(vcmla_rot90_f16): New.
(vcmlaq_laneq_f16): New.
(vcmla_rot180_laneq_f16): New.
(vcmla_rot180_lane_f16): New.
(vcmlaq_rot180_f16): New.
(vcmla_rot180_f16): New.
(vcmlaq_rot90_laneq_f16): New.
(vcmlaq_rot270_laneq_f16): New.
(vcmlaq_rot270_lane_f16): New.
(vcmla_rot270_laneq_f16): New.
(vcmlaq_rot270_f16): New.
(vcmla_rot270_f16): New.
(vcmlaq_rot180_laneq_f16): New.
(vcmlaq_rot180_lane_f16): New.
(vcmla_rot270_lane_f16): New.
(vcadd_rot90_f32): New.
(vcaddq_rot90_f32): New.
(vcaddq_rot90_f64): New.
(vcadd_rot270_f32): New.
(vcaddq_rot270_f32): New.
(vcaddq_rot270_f64): New.
(vcmla_f32): New.
(vcmlaq_f32): New.
(vcmlaq_f64): New.
(vcmla_lane_f32): New.
(vcmla_laneq_f32): New.
(vcmlaq_lane_f32): New.
(vcmlaq_laneq_f32): New.
(vcmla_rot90_f32): New.
(vcmlaq_rot90_f32): New.
(vcmlaq_rot90_f64): New.
(vcmla_rot90_lane_f32): New.
(vcmla_rot90_laneq_f32): New.
(vcmlaq_rot90_lane_f32): New.
(vcmlaq_rot90_laneq_f32): New.
(vcmla_rot180_f32): New.
(vcmlaq_rot180_f32): New.
(vcmlaq_rot180_f64): New.
(vcmla_rot180_lane_f32): New.
(vcmla_rot180_laneq_f32): New.
(vcmlaq_rot180_lane_f32): New.
(vcmlaq_rot180_laneq_f32): New.
(vcmla_rot270_f32): New.
(vcmlaq_rot270_f32): New.
(vcmlaq_rot270_f64): New.
(vcmla_rot270_lane_f32): New.
(vcmla_rot270_laneq_f32): New.
(vcmlaq_rot270_lane_f32): New.
(vcmlaq_rot270_laneq_f32): New.
* config/aarch64/aarch64.h (TARGET_COMPLEX): New.
* config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
(FCADD, FCMLA): New.
(rot): New.
* config/arm/types.md (neon_fcadd, neon_fcmla): New.

gcc/testsuite/ChangeLog:

2019-01-10  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/advsimd-intrinsics/vector-complex.c: New test.
* gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c: New test.

From-SVN: r267795

5 years agotarget-supports.exp (check_effective_target_arm_v8_3a_complex_neon_ok_nocache, [...
Tamar Christina [Thu, 10 Jan 2019 03:27:13 +0000 (03:27 +0000)]
target-supports.exp (check_effective_target_arm_v8_3a_complex_neon_ok_nocache, [...]): New.

gcc/testsuite/ChangeLog:

2019-01-10  Tamar Christina  <tamar.christina@arm.com>

* lib/target-supports.exp
(check_effective_target_arm_v8_3a_complex_neon_ok_nocache,
check_effective_target_arm_v8_3a_complex_neon_ok,
add_options_for_arm_v8_3a_complex_neon,
check_effective_target_arm_v8_3a_complex_neon_hw,
check_effective_target_vect_complex_rot_N): New.

From-SVN: r267794

5 years agore PR fortran/88376 (ICE in is_illegal_recursion, at fortran/resolve.c:1689)
Steven G. Kargl [Thu, 10 Jan 2019 01:11:51 +0000 (01:11 +0000)]
re PR fortran/88376 (ICE in is_illegal_recursion, at fortran/resolve.c:1689)

2019-01-09  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/88376
* resolve.c (is_illegal_recursion): Remove an assert().

2019-01-09  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/88376
* gfortran.dg/pr88376.f90: New test.

From-SVN: r267793

5 years agoDaily bump.
GCC Administrator [Thu, 10 Jan 2019 00:16:43 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r267792

5 years agore PR go/86343 (types built by GO share TYPE_FIELDS in unsupported way)
Ian Lance Taylor [Wed, 9 Jan 2019 23:38:55 +0000 (23:38 +0000)]
re PR go/86343 (types built by GO share TYPE_FIELDS in unsupported way)

PR go/86343
* go-gcc.cc (Gcc_backend::set_placeholder_struct_type): Go back to
build_distinct_type_copy, but copy the fields so that they have
the right DECL_CONTEXT.

From-SVN: r267789

5 years agolibphobos: Merge phobos upstream b022e552a
Iain Buclaw [Wed, 9 Jan 2019 23:04:20 +0000 (23:04 +0000)]
libphobos: Merge phobos upstream b022e552a

This removes updates the removal date of all deprecations in phobos.
Many of the marked functions have passed their end dates, and are now
absent in upstream.

Reviewed-on: https://github.com/dlang/phobos/pull/6828

From-SVN: r267788

5 years agoPR other/16615 [5/5]
Sandra Loosemore [Wed, 9 Jan 2019 21:46:45 +0000 (16:46 -0500)]
PR other/16615 [5/5]

2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>

PR other/16615 [5/5]

gcc/po/
* gcc.pot: Regenerate.

From-SVN: r267787

5 years agoPR other/16615 [4/5]
Sandra Loosemore [Wed, 9 Jan 2019 21:44:56 +0000 (16:44 -0500)]
PR other/16615 [4/5]

2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>

PR other/16615 [4/5]

gcc/
* config/pa/pa.c: Change "can not" to "cannot".
* gimple-ssa-evrp-analyze.c: Likewise.
* ipa-icf.c: Likewise.
* ipa-polymorphic-call.c: Likewise.
* ipa-pure-const.c: Likewise.
* lra-constraints.c: Likewise.
* lra-remat.c: Likewise.
* reload1.c: Likewise.
* reorg.c: Likewise.
* tree-ssa-uninit.c: Likewise.

gcc/ada/
* exp_ch11.adb: Change "can not" to "cannot".
* sem_ch4.adb: Likewise.

gcc/fortran/
* expr.c: Change "can not" to "cannot".

libobjc/
* objc/runtime.h: Change "can not" to "cannot".

From-SVN: r267786

5 years agoPR other/16615 [3/5]
Sandra Loosemore [Wed, 9 Jan 2019 21:41:36 +0000 (16:41 -0500)]
PR other/16615 [3/5]

2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>

PR other/16615 [3/5]

gcc/testsuite/
* g++.dg/lto/odr-1_1.C: Update diagnostic message patterns to replace
"can not" with "cannot".
* gfortran.dg/common_15.f90: Likewise.
* gfortran.dg/derived_result_2.f90: Likewise.
* gfortran.dg/do_check_6.f90: Likewise.
* gfortran.dg/namelist_args.f90: Likewise.
* gfortran.dg/negative_unit_check.f90: Likewise.
* gfortran.dg/pure_formal_3.f90: Likewise.
* obj-c++.dg/attributes/method-attribute-2.mm: Likewise.
* obj-c++.dg/exceptions-3.mm: Likewise.
* obj-c++.dg/exceptions-4.mm: Likewise.
* obj-c++.dg/exceptions-5.mm: Likewise.
* obj-c++.dg/property/at-property-23.mm: Likewise.
* obj-c++.dg/property/dotsyntax-17.mm: Likewise.
* obj-c++.dg/property/property-neg-7.mm: Likewise.
* objc.dg/attributes/method-attribute-2.m: Likewise.
* objc.dg/exceptions-3.m: Likewise.
* objc.dg/exceptions-4.m: Likewise.
* objc.dg/exceptions-5.m: Likewise.
* objc.dg/param-1.m: Likewise.
* objc.dg/property/at-property-23.m: Likewise.
* objc.dg/property/dotsyntax-17.m: Likewise.
* objc.dg/property/property-neg-7.m: Likewise.

From-SVN: r267785

5 years agoPR other/16615 [2/5]
Sandra Loosemore [Wed, 9 Jan 2019 21:39:49 +0000 (16:39 -0500)]
PR other/16615 [2/5]

2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>

PR other/16615 [2/5]

include/
* libiberty.h: Mechanically replace "can not" with "cannot".
* plugin-api.h: Likewise.

libiberty/
* cp-demangle.c: Mechanically replace "can not" with "cannot".
* floatformat.c: Likewise.
* strerror.c: Likewise.

From-SVN: r267784

5 years agoPR other/16615 [1/5]
Sandra Loosemore [Wed, 9 Jan 2019 21:37:45 +0000 (16:37 -0500)]
PR other/16615 [1/5]

2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>

PR other/16615 [1/5]

contrib/
* mklog: Mechanically replace "can not" with "cannot".

gcc/
* Makefile.in: Mechanically replace "can not" with "cannot".
* alias.c: Likewise.
* builtins.c: Likewise.
* calls.c: Likewise.
* cgraph.c: Likewise.
* cgraph.h: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* combine-stack-adj.c: Likewise.
* combine.c: Likewise.
* common/config/i386/i386-common.c: Likewise.
* config/aarch64/aarch64.c: Likewise.
* config/alpha/sync.md: Likewise.
* config/arc/arc.c: Likewise.
* config/arc/predicates.md: Likewise.
* config/arm/arm-c.c: Likewise.
* config/arm/arm.c: Likewise.
* config/arm/arm.h: Likewise.
* config/arm/arm.md: Likewise.
* config/arm/cortex-r4f.md: Likewise.
* config/csky/csky.c: Likewise.
* config/csky/csky.h: Likewise.
* config/darwin-f.c: Likewise.
* config/epiphany/epiphany.md: Likewise.
* config/i386/i386.c: Likewise.
* config/i386/sol2.h: Likewise.
* config/m68k/m68k.c: Likewise.
* config/mcore/mcore.h: Likewise.
* config/microblaze/microblaze.md: Likewise.
* config/mips/20kc.md: Likewise.
* config/mips/sb1.md: Likewise.
* config/nds32/nds32.c: Likewise.
* config/nds32/predicates.md: Likewise.
* config/pa/pa.c: Likewise.
* config/rs6000/e300c2c3.md: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/s390/s390.h: Likewise.
* config/sh/sh.c: Likewise.
* config/sh/sh.md: Likewise.
* config/spu/vmx2spu.h: Likewise.
* cprop.c: Likewise.
* dbxout.c: Likewise.
* df-scan.c: Likewise.
* doc/cfg.texi: Likewise.
* doc/extend.texi: Likewise.
* doc/fragments.texi: Likewise.
* doc/gty.texi: Likewise.
* doc/invoke.texi: Likewise.
* doc/lto.texi: Likewise.
* doc/md.texi: Likewise.
* doc/objc.texi: Likewise.
* doc/rtl.texi: Likewise.
* doc/tm.texi: Likewise.
* dse.c: Likewise.
* emit-rtl.c: Likewise.
* emit-rtl.h: Likewise.
* except.c: Likewise.
* expmed.c: Likewise.
* expr.c: Likewise.
* fold-const.c: Likewise.
* genautomata.c: Likewise.
* gimple-fold.c: Likewise.
* hard-reg-set.h: Likewise.
* ifcvt.c: Likewise.
* ipa-comdats.c: Likewise.
* ipa-cp.c: Likewise.
* ipa-devirt.c: Likewise.
* ipa-fnsummary.c: Likewise.
* ipa-icf.c: Likewise.
* ipa-inline-transform.c: Likewise.
* ipa-inline.c: Likewise.
* ipa-polymorphic-call.c: Likewise.
* ipa-profile.c: Likewise.
* ipa-prop.c: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-reference.c: Likewise.
* ipa-split.c: Likewise.
* ipa-visibility.c: Likewise.
* ipa.c: Likewise.
* ira-build.c: Likewise.
* ira-color.c: Likewise.
* ira-conflicts.c: Likewise.
* ira-costs.c: Likewise.
* ira-int.h: Likewise.
* ira-lives.c: Likewise.
* ira.c: Likewise.
* ira.h: Likewise.
* loop-invariant.c: Likewise.
* loop-unroll.c: Likewise.
* lower-subreg.c: Likewise.
* lra-assigns.c: Likewise.
* lra-constraints.c: Likewise.
* lra-eliminations.c: Likewise.
* lra-lives.c: Likewise.
* lra-remat.c: Likewise.
* lra-spills.c: Likewise.
* lra.c: Likewise.
* lto-cgraph.c: Likewise.
* lto-streamer-out.c: Likewise.
* postreload-gcse.c: Likewise.
* predict.c: Likewise.
* profile-count.h: Likewise.
* profile.c: Likewise.
* recog.c: Likewise.
* ree.c: Likewise.
* reload.c: Likewise.
* reload1.c: Likewise.
* reorg.c: Likewise.
* resource.c: Likewise.
* rtl.def: Likewise.
* rtl.h: Likewise.
* rtlanal.c: Likewise.
* sched-deps.c: Likewise.
* sched-ebb.c: Likewise.
* sched-rgn.c: Likewise.
* sel-sched-ir.c: Likewise.
* sel-sched.c: Likewise.
* shrink-wrap.c: Likewise.
* simplify-rtx.c: Likewise.
* symtab.c: Likewise.
* target.def: Likewise.
* toplev.c: Likewise.
* tree-call-cdce.c: Likewise.
* tree-cfg.c: Likewise.
* tree-complex.c: Likewise.
* tree-core.h: Likewise.
* tree-eh.c: Likewise.
* tree-inline.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-nrv.c: Likewise.
* tree-profile.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-alias.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-phionlycprop.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-propagate.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-uninit.c: Likewise.
* tree-ssanames.c: Likewise.
* tree-streamer-out.c: Likewise.
* tree.c: Likewise.
* tree.h: Likewise.
* vr-values.c: Likewise.

gcc/ada/
* exp_ch9.adb: Mechanically replace "can not" with "cannot".
* libgnat/s-regpat.ads: Likewise.
* par-ch4.adb: Likewise.
* set_targ.adb: Likewise.
* types.ads: Likewise.

gcc/cp/
* cp-tree.h: Mechanically replace "can not" with "cannot".
* parser.c: Likewise.
* pt.c: Likewise.

gcc/fortran/
* class.c: Mechanically replace "can not" with "cannot".
* decl.c: Likewise.
* expr.c: Likewise.
* gfc-internals.texi: Likewise.
* intrinsic.texi: Likewise.
* invoke.texi: Likewise.
* io.c: Likewise.
* match.c: Likewise.
* parse.c: Likewise.
* primary.c: Likewise.
* resolve.c: Likewise.
* symbol.c: Likewise.
* trans-array.c: Likewise.
* trans-decl.c: Likewise.
* trans-intrinsic.c: Likewise.
* trans-stmt.c: Likewise.

gcc/go/
* go-backend.c: Mechanically replace "can not" with "cannot".
* go-gcc.cc: Likewise.

gcc/lto/
* lto-partition.c: Mechanically replace "can not" with "cannot".
* lto-symtab.c: Likewise.
* lto.c: Likewise.

gcc/objc/
* objc-act.c: Mechanically replace "can not" with "cannot".

libbacktrace/
* backtrace.h: Mechanically replace "can not" with "cannot".

libgcc/
* config/c6x/libunwind.S: Mechanically replace "can not" with
"cannot".
* config/tilepro/atomic.h: Likewise.
* config/vxlib-tls.c: Likewise.
* generic-morestack-thread.c: Likewise.
* generic-morestack.c: Likewise.
* mkmap-symver.awk: Likewise.

libgfortran/
* caf/single.c: Mechanically replace "can not" with "cannot".
* io/unit.c: Likewise.

libobjc/
* class.c: Mechanically replace "can not" with "cannot".
* objc/runtime.h: Likewise.
* sendmsg.c: Likewise.

liboffloadmic/
* include/coi/common/COIResult_common.h: Mechanically replace
"can not" with "cannot".
* include/coi/source/COIBuffer_source.h: Likewise.

libstdc++-v3/
* include/ext/bitmap_allocator.h: Mechanically replace "can not"
with "cannot".

From-SVN: r267783

5 years agore PR fortran/68426 (Simplification of SPREAD with a derived type element is unimplem...
Thomas Koenig [Wed, 9 Jan 2019 20:31:07 +0000 (20:31 +0000)]
re PR fortran/68426 (Simplification of SPREAD with a derived type element is unimplemented)

2019-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/68426
* simplify.c (gfc_simplify_spread): Also simplify if the
type of source is an EXPR_STRUCTURE.

2019-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/68426
* gfortran.dg/spread_simplify_1.f90: New test.

From-SVN: r267781

5 years agoi386-protos.h (ix86_expand_xorsign): New prototype.
Uros Bizjak [Wed, 9 Jan 2019 19:16:02 +0000 (20:16 +0100)]
i386-protos.h (ix86_expand_xorsign): New prototype.

* config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
(ix86_split_xorsign): Ditto.
* config/i386/i386.c (ix86_expand_xorsign): New function.
(ix86_split_xorsign): Ditto.
* config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
(xorsign<mode>3): New expander.
(xorsign<mode>3_1): New insn_and_split pattern.
* config/i386/sse.md (xorsign<mode>3): New expander.

testsuite/ChangeLog:

* lib/target-supports.exp
(check_effective_target_xorsign): Add i?86-*-* and x86_64-*-* targets.
* gcc.target/i386/xorsign.c: New test.

From-SVN: r267779

5 years agoMerge dmd upstream 6d5b853d3
Iain Buclaw [Wed, 9 Jan 2019 17:59:55 +0000 (17:59 +0000)]
Merge dmd upstream 6d5b853d3

Updates the copyright years of all d/dmd sources.

Reviewed-on: https://github.com/dlang/dmd/pull/9181

From-SVN: r267778

5 years agosparc.md (*tablejump_sp32): Merge into...
Eric Botcazou [Wed, 9 Jan 2019 14:47:32 +0000 (14:47 +0000)]
sparc.md (*tablejump_sp32): Merge into...

* config/sparc/sparc.md (*tablejump_sp32): Merge into...
(*tablejump_sp64): Likewise.
(*tablejump<P:mode>): ...this.
(*call_address_sp32): Merge into...
(*call_address_sp64): Likewise.
(*call_address<P:mode>): ...this.
(*call_symbolic_sp32): Merge into...
(*call_symbolic_sp64): Likewise.
(*call_symbolic<P:mode>): ...this.
(call_value): Remove constraint and add predicate.
(*call_value_address_sp32): Merge into...
(*call_value_address_sp64): Likewise.
(*call_value_address<P:mode>): ...this.
(*call_value_symbolic_sp32): Merge into...
(*call_value_symbolic_sp64): Likewise.
(*call_value_symbolic<P:mode>): ...this.
(*sibcall_symbolic_sp32): Merge into...
(*sibcall_symbolic_sp64): Likewise.
(*sibcall_symbolic<P:mode>): ...this.
(sibcall_value): Remove constraint and add predicate.
(*sibcall_value_symbolic_sp32): Merge into...
(*sibcall_value_symbolic_sp64): Likewise.
(*sibcall_value_symbolic<P:mode>): ...this.
(window_save): Minor tweak.
(*branch_sp32): Merge into...
(*branch_sp64): Likewise.
(*branch<P:mode>): ...this.

From-SVN: r267774

5 years agore PR target/84010 (problematic TLS code generation on 64-bit SPARC)
Eric Botcazou [Wed, 9 Jan 2019 14:34:20 +0000 (14:34 +0000)]
re PR target/84010 (problematic TLS code generation on 64-bit SPARC)

PR target/84010
* config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
consistently in TLS address generation and adjust code to the renaming
of patterns.  Mark calls to __tls_get_addr as const.
* config/sparc/sparc.md (tgd_hi22): Turn into...
(tgd_hi22<P:mode>): ...this and use Pmode throughout.
(tgd_lo10): Turn into...
(tgd_lo10<P:mode>): ...this and use Pmode throughout.
(tgd_add32): Merge into...
(tgd_add64): Likewise.
(tgd_add<P:mode>): ...this and use Pmode throughout.
(tldm_hi22): Turn into...
(tldm_hi22<P:mode>): ...this and use Pmode throughout.
(tldm_lo10): Turn into...
(tldm_lo10<P:mode>): ...this and use Pmode throughout.
(tldm_add32): Merge into...
(tldm_add64): Likewise.
(tldm_add<P:mode>): ...this and use Pmode throughout.
(tldm_call32): Merge into...
(tldm_call64): Likewise.
(tldm_call<P:mode>): ...this and use Pmode throughout.
(tldo_hix22): Turn into...
(tldo_hix22<P:mode>): ...this and use Pmode throughout.
(tldo_lox10): Turn into...
(tldo_lox10<P:mode>): ...this and use Pmode throughout.
(tldo_add32): Merge into...
(tldo_add64): Likewise.
(tldo_add<P:mode>): ...this and use Pmode throughout.
(tie_hi22): Turn into...
(tie_hi22<P:mode>): ...this and use Pmode throughout.
(tie_lo10): Turn into...
(tie_lo10<P:mode>): ...this and use Pmode throughout.
(tie_ld64): Use DImode throughout.
(tie_add32): Merge into...
(tie_add64): Likewise.
(tie_add<P:mode>): ...this and use Pmode throughout.
(tle_hix22_sp32): Merge into...
(tle_hix22_sp64): Likewise.
(tle_hix22<P:mode>): ...this and use Pmode throughout.
(tle_lox22_sp32): Merge into...
(tle_lox22_sp64): Likewise.
(tle_lox22<P:mode>): ...this and use Pmode throughout.
(*tldo_ldub_sp32): Merge into...
(*tldo_ldub_sp64): Likewise.
(*tldo_ldub<P:mode>): ...this and use Pmode throughout.
(*tldo_ldub1_sp32): Merge into...
(*tldo_ldub1_sp64): Likewise.
(*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
(*tldo_ldub2_sp32): Merge into...
(*tldo_ldub2_sp64): Likewise.
(*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
(*tldo_ldsb1_sp32): Merge into...
(*tldo_ldsb1_sp64): Likewise.
(*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
(*tldo_ldsb2_sp32): Merge into...
(*tldo_ldsb2_sp64): Likewise.
(*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
(*tldo_ldub3_sp64): Use DImode throughout.
(*tldo_ldsb3_sp64): Likewise.
(*tldo_lduh_sp32): Merge into...
(*tldo_lduh_sp64): Likewise.
(*tldo_lduh<P:mode>): ...this and use Pmode throughout.
(*tldo_lduh1_sp32): Merge into...
(*tldo_lduh1_sp64): Likewise.
(*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
(*tldo_ldsh1_sp32): Merge into...
(*tldo_ldsh1_sp64): Likewise.
(*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
(*tldo_lduh2_sp64): Use DImode throughout.
(*tldo_ldsh2_sp64): Likewise.
(*tldo_lduw_sp32): Merge into...
(*tldo_lduw_sp64): Likewise.
(*tldo_lduw<P:mode>): ...this and use Pmode throughout.
(*tldo_lduw1_sp64): Use DImode throughout.
(*tldo_ldsw1_sp64): Likewise.
(*tldo_ldx_sp64): Likewise.
(*tldo_stb_sp32): Merge into...
(*tldo_stb_sp64): Likewise.
(*tldo_stb<P:mode>): ...this and use Pmode throughout.
(*tldo_sth_sp32): Merge into...
(*tldo_sth_sp64): Likewise.
(*tldo_sth<P:mode>): ...this and use Pmode throughout.
(*tldo_stw_sp32): Merge into...
(*tldo_stw_sp64): Likewise.
(*tldo_stw<P:mode>): ...this and use Pmode throughout.
(*tldo_stx_sp64): Use DImode throughout.

From-SVN: r267771

5 years ago[AArch64, 6/6] Enable BTI: Add configure option.
Sudakshina Das [Wed, 9 Jan 2019 14:32:06 +0000 (14:32 +0000)]
[AArch64, 6/6] Enable BTI: Add configure option.

This patch is part of a series that enables ARMv8.5-A in GCC and
adds Branch Target Identification Mechanism.

This patch is adding a new configure option for enabling BTI and
Return Address Signing by default.

*** gcc/ChangeLog ***

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

* config/aarch64/aarch64.c (aarch64_override_options): Add case to
check configure option to set BTI and Return Address Signing.
* configure.ac: Add --enable-standard-branch-protection and
--disable-standard-branch-protection.
* configure: Regenerated.
* doc/install.texi: Document the same.

*** gcc/testsuite/ChangeLog ***

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

* gcc.target/aarch64/bti-1.c: Update test to not add command line
option when configure with bti.
* gcc.target/aarch64/bti-2.c: Likewise.
* lib/target-supports.exp
(check_effective_target_default_branch_protection):
Add configure check for --enable-standard-branch-protection.

From-SVN: r267770

5 years ago[AArch64, 5/6] Enable BTI : Add new pass for BTI.
Sudakshina Das [Wed, 9 Jan 2019 14:21:22 +0000 (14:21 +0000)]
[AArch64, 5/6] Enable BTI : Add new pass for BTI.

This patch is part of a series that enables ARMv8.5-A in GCC and
adds Branch Target Identification Mechanism.

This patch adds a new pass called "bti" which is triggered by the command
line argument -mbranch-protection whenever "bti" is turned on.

The pass iterates through the instructions and adds appropriated BTI
instructions based on the following:
  * Add a new "BTI C" at the beginning of a function, unless its already
    protected by a "PACIASP". We exempt the functions that are only called
    directly.
  * Add a new "BTI J" for every target of an indirect jump, jump table
    targets, non-local goto targets or labels that might be referenced by
    variables, constant pools, etc (NOTE_INSN_DELETED_LABEL).

Since we have already changed the use of indirect tail calls to only x16 and
x17, we do not have to use "BTI JC".
(check patch 3/6).

*** gcc/ChangeLog ***

2018-01-09  Sudakshina Das  <sudi.das@arm.com>
    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

* config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
* gcc/config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
* config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
if bti is enabled.
* config/aarch64/aarch64-bti-insert.c: New file.
* config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
pass.
* config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
new bti pass.
* config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
(bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
* config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.

*** gcc/testsuite/ChangeLog ***

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

* gcc.target/aarch64/bti-1.c: New test.
* gcc.target/aarch64/bti-2.c: New test.
* gcc.target/aarch64/bti-3.c: New test.
* lib/target-supports.exp
(check_effective_target_aarch64_bti_hw): Add new check for BTI hw.

Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
From-SVN: r267769

5 years ago[AArch64, 4/6] Enable BTI: Add new <type> to -mbranch-protection.
Sudakshina Das [Wed, 9 Jan 2019 14:14:28 +0000 (14:14 +0000)]
[AArch64, 4/6] Enable BTI: Add new <type> to -mbranch-protection.

This patch is part of a series that enables ARMv8.5-A in GCC and
adds Branch Target Identification Mechanism.

This pass updates the CLI of -mbranch-protection to add "bti" as a new
type of branch protection and also add it its definition of "none" and
"standard". The option does not really do anything functional.
The functional changes are in the next patch. I am initializing the target
variable aarch64_enable_bti to 2 since I am also adding a configure option
in a later patch and a value different from 0 and 1 would help identify if its
already been updated.

*** gcc/ChangeLog ***

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

* config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
* config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
Disable bti for -mbranch-protection=none.
(aarch64_handle_standard_branch_protection): Enable bti for
-mbranch-protection=standard.
(aarch64_handle_bti_protection): Enable bti for "bti" in the string to
-mbranch-protection.
(aarch64_bti_enabled): Check if bti is enabled.
* config/aarch64/aarch64.opt: Declare target variable.
* doc/invoke.texi: Add bti to the -mbranch-protection documentation.

From-SVN: r267768

5 years ago[AArch64, 3/6] Restrict indirect tail calls to x16 and x17
Sudakshina Das [Wed, 9 Jan 2019 14:10:58 +0000 (14:10 +0000)]
[AArch64, 3/6] Restrict indirect tail calls to x16 and x17

This patch is part of a series that enables ARMv8.5-A in GCC and
adds Branch Target Identification Mechanism.

This patch changes the registers that are allowed for indirect tail calls.
We are choosing to restrict these to only x16 or x17.

Indirect tail calls are special in a way that they convert a call statement
(BLR instruction) to a jump statement (BR instruction). For the best possible
use of Branch Target Identification Mechanism, we would like to place a
"BTI C" (call) at the beginning of the function which is only
compatible with BLRs and BR X16/X17. In order to make indirect tail calls
compatible with this scenario, we are restricting the TAILCALL_ADDR_REGS.

In order to use x16/x17 for this purpose, we also had to change the use
of these registers in the epilogue/prologue handling. For this purpose
we are now using x12 and x13 named as EP0_REGNUM and EP1_REGNUM as
scratch registers for epilogue and prologue.

*** gcc/ChangeLog***

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

* config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
(aarch64_expand_epilogue): Likewise.
(aarch64_output_mi_thunk): Likewise
* config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
TAILCALL_ADDR_REGS to x16 and x17.
* config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.

*** gcc/testsuite/ChangeLog ***

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

* gcc.target/aarch64/test_frame_17.c: Update to check for EP0_REGNUM
instead of IP0_REGNUM and add test case.

From-SVN: r267767

5 years ago[AArch64, 2/6] Add new arch command line feaures from ARMv8.5-A
Sudakshina Das [Wed, 9 Jan 2019 14:08:01 +0000 (14:08 +0000)]
[AArch64, 2/6] Add new arch command line feaures from ARMv8.5-A

This patch is part of a series that enables ARMv8.5-A in GCC and
adds Branch Target Identification Mechanism.

This patch add all the command line feature that are added by ARMv8.5.
Optional extensions to armv8.5-a:
+rng : Random number Generation Instructions.
+memtag : Memory Tagging Extension.

ARMv8.5-A features that are optional to older arch:
+sb : Speculation barrier instruction.
+ssbs: Speculative Store Bypass Safe instruction.
+predres: Execution and Data Prediction Restriction instructions.

All of the above only effect the assembler and have already gone in the
trunk of binutils.

*** gcc/ChangeLog ***

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

* config/aarch64/aarch64-option-extensions.def: Define
AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
* gcc/config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
(AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
(AARCH64_FL_PREDRES): New.
(AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
AARCH64_FL_PREDRES by default.
* gcc/doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.

From-SVN: r267766

5 years ago[AArch64, 1/6] Enable ARMv8.5-A in gcc
Sudakshina Das [Wed, 9 Jan 2019 14:05:55 +0000 (14:05 +0000)]
[AArch64, 1/6] Enable ARMv8.5-A in gcc

This patch is part of a series that enables ARMv8.5-A in GCC and
adds Branch Target Identification Mechanism.

*** gcc/ChangeLog ***

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

* config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
ARMv8.5-A.
* gcc/config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
(AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
* gcc/doc/invoke.texi: Document ARMv8.5-A.

From-SVN: r267765