Commit Graph

169004 Commits

Author SHA1 Message Date
Jonathan Wakely b1bb4869e2 Add noexcept to tuple<> and simplify tuple<T1,T2> noexcept-specifiers
* include/std/tuple (tuple<>): Add noexcept to allocator-extended
	constructors.
	(tuple<T1, T2>::__nothrow_default_constructible()): New helper
	function.
	(tuple<T1, T2>::tuple(), explicit tuple<T1, T2>::tuple()): Use helper.

From-SVN: r271814
2019-05-31 15:58:05 +01:00
Jan Hubicka 1facd6278b tree-ssa-alias.c (type_has_components_p): New function.
* tree-ssa-alias.c (type_has_components_p): New function.
	(aliasing_component_refs_p): Use it.

From-SVN: r271813
2019-05-31 14:16:27 +00:00
Jonathan Wakely ff0b7e883d Fix breakage due to removing __gnu_cxx::size_t declaration
Restore the using-declaration but locally in the source file, not in the
header.

	* src/c++98/bitmap_allocator.cc: Add using-declaration for size_t.

From-SVN: r271812
2019-05-31 14:59:19 +01:00
Nathan Sidwell ca3edeaed6 [C++PATCH] Lambda names are anonymous
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg02126.html
	* cp-tree.h (IDENTIFIER_LAMBDA_P): New.
	(TYPE_ANON_P): New.
	(LAMBDA_TYPE_P, TYPE_UNNAMED_P):  Likewise.
	(LAMBDANAME_PREFIX, LAMBDANAME_FORMAT): Delete.
	(make_lambda_name): Don't declare.
	* error.c (dump_aggr_type): Check for lambdas before other
	anonymous names.
	* lambda.c (begin_lambda_type): Use make_anon_name.
	* cp-lang.c (cxx_dwarf_name): Lambda names smell anonymous.
	* mangle.c (write_local_name): Likewise.
	* name-lookup.c (lambda_cnt, make_lambda_name): Delete.

From-SVN: r271811
2019-05-31 13:25:46 +00:00
Bill Schmidt 929c046d57 cpu-future.c: Require powerpc_future_ok.
2019-05-31  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Michael Meissner  <meissner@linux.ibm.com>

	* gcc.target/powerpc/cpu-future.c: Require powerpc_future_ok.
	* gcc.target/powerpc/localentry-1.c: Likewise.
	* gcc.target/powerpc/localentry-direct-1.c: Likewise.
	* gcc.target/powerpc/notoc-direct-1.c: Likewise.
	* gcc.target/powerpc/pcrel-sibcall-1.c: Likewise.
	* lib/target-supports.exp (check_powerpc_future_hw_available): New.
	(check_effective_target_powerpc_future_ok): New.


Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>

From-SVN: r271810
2019-05-31 12:22:52 +00:00
Jonathan Wakely 3228289e1e PR libstdc++/90682 allow set_terminate(0) and set_unexpected(0)
Make these functions restore the default handlers when passed a null
pointer. This is consistent with std::pmr::set_default_resource(0), and
also matches the current behaviour of libc++.

In order to avoid duplicating the preprocessor condition from
eh_term_handler.cc more that into a new eh_term_handler.h header and
define a macro that can be used in both eh_term_handler.cc and
eh_terminate.cc.

	PR libstdc++/90682
	* libsupc++/eh_term_handler.cc: Include eh_term_handler.h to get
	definition of _GLIBCXX_DEFAULT_TERM_HANDLER.
	* libsupc++/eh_term_handler.h: New header defining
	_GLIBCXX_DEFAULT_TERM_HANDLER.
	* libsupc++/eh_terminate.cc: Include eh_term_handler.h.
	(set_terminate): Restore default handler when argument is null.
	(set_unexpected): Likewise.
	* testsuite/18_support/set_terminate.cc: New test.
	* testsuite/18_support/set_unexpected.cc: New test.

From-SVN: r271808
2019-05-31 11:35:11 +01:00
Jonathan Wakely 3263fb9c6b Remove using-declarations that add std names to __gnu_cxx
These using-declarations appear to have been added for simplicity when
moving the non-standard extensions from namespace std to namespace
__gnu_cxx. Dumping all these names into namespace __gnu_cxx allows
unportable uses like __gnu_cxx::size_t and __gnu_cxx::pair, which serve
no useful purpose.

This patch removes most of the using-declarations from namespace scope,
then either qualifies names as needed or adds using-declarations at
block scope or typedefs at class scope.

	* include/backward/hashtable.h (size_t, ptrdiff_t)
	(forward_iterator_tag, input_iterator_tag, _Construct, _Destroy)
	(distance, vector, pair, __iterator_category): Remove
	using-declarations that add these names to namespace __gnu_cxx.
	* include/ext/bitmap_allocator.h (size_t, ptrdiff_t): Likewise.
	* include/ext/debug_allocator.h (size_t): Likewise.
	* include/ext/functional (size_t, unary_function, binary_function)
	(mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t, const_mem_fun1_ref_t):
	Likewise.
	* include/ext/malloc_allocator.h (size_t, ptrdiff_t): Likewise.
	* include/ext/memory (ptrdiff_t, pair, __iterator_category): Likewise.
	* include/ext/mt_allocator.h (size_t, ptrdiff_t): Likewise.
	* include/ext/new_allocator.h (size_t, ptrdiff_t): Likewise.
	* include/ext/numeric (iota): Fix outdated comment.
	* include/ext/pool_allocator.h (size_t, ptrdiff_t): Likewise.
	* include/ext/rb_tree (_Rb_tree, allocator): Likewise.
	* include/ext/rope (size_t, ptrdiff_t, allocator, _Destroy): Likewise.
	* include/ext/ropeimpl.h (size_t, printf, basic_ostream)
	(__throw_length_error, _Destroy, std::__uninitialized_fill_n_a):
	Likewise.
	* include/ext/slist (size_t, ptrdiff_t, _Construct, _Destroy)
	(allocator, __true_type, __false_type): Likewise.

From-SVN: r271807
2019-05-31 11:35:07 +01:00
Antony Polukhin 608a080c3f PR libstdc++/71579 assert that type traits are not misused with incomplete types
This patch adds static asserts for type traits misuse with incomplete
classes and unions. This gives a nice readable error message instead
of an UB and odr-violations.

Some features of the patch:
* each type trait has it's own static_assert inside. This gives better
diagnostics than the approach with putting the assert into a helper
structure and using it in each trait.
* the result of completeness check is not memorized by the compiler.
This gives no false positive after the first failed check.
* some of the compiler builtins already implement the check. But not
all of them! So the asserts are in all the type_traits that may
benefit from the check. This also makes the behavior of libstdc++ more
consistent across different (non GCC) compilers.
* std::is_base_of does not have the assert as it works well in many
cases with incomplete types

2019-05-31  Antony Polukhin  <antoshkka@gmail.com>

	PR libstdc++/71579
	* include/std/type_traits __type_identity, __is_complete_or_unbounded):
	New helpers for checking preconditions in traits.
	(is_trivial, is_trivially_copyable, is_standard_layout, is_pod)
	(is_literal_type, is_empty, is_polymorphic, is_final, is_abstract)
	(is_destructible, is_nothrow_destructible, is_constructible)
	(is_default_constructible, is_copy_constructible)
	(is_move_constructible, is_nothrow_default_constructible)
	(is_nothrow_constructible, is_nothrow_copy_constructible)
	(is_nothrow_move_constructible, is_copy_assignable, is_move_assignable)
	(is_nothrow_assignable, is_nothrow_copy_assignable)
	(is_nothrow_move_assignable, is_trivially_constructible)
	(is_trivially_copy_constructible, is_trivially_move_constructible)
	is_trivially_assignable, is_trivially_copy_assignable)
	(is_trivially_move_assignable, is_trivially_destructible)
	(alignment_of, is_swappable, is_nothrow_swappable, is_invocable)
	(is_invocable_r, is_nothrow_invocable)
	(has_unique_object_representations, is_aggregate): Add static_asserts
	to make sure that type traits are not misused with incomplete types.
	(__is_constructible_impl, __is_nothrow_default_constructible_impl)
	(__is_nothrow_constructible_impl, __is_nothrow_assignable_impl): New
	base characteristics without assertions that can be reused in other
	traits.
	* testsuite/20_util/is_complete_or_unbounded/memoization.cc: New test.
	* testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc: New
	test.
	* testsuite/20_util/is_complete_or_unbounded/value.cc: New test.
	* testsuite/20_util/is_abstract/incomplete_neg.cc: New test.
	* testsuite/20_util/is_aggregate/incomplete_neg.cc: New test.
	* testsuite/20_util/is_class/value.cc: Check incomplete type.
	* testsuite/20_util/is_function/value.cc: Likewise.
	* testsuite/20_util/is_move_constructible/incomplete_neg.cc: New test.
	* testsuite/20_util/is_nothrow_move_assignable/incomplete_neg.cc: New
	test.
	* testsuite/20_util/is_polymorphic/incomplete_neg.cc: New test.
	* testsuite/20_util/is_reference/value.cc: Check incomplete types.
	* testsuite/20_util/is_unbounded_array/value.cc: Likewise.
	* testsuite/20_util/is_union/value.cc: Likewise.
	* testsuite/20_util/is_void/value.cc: Likewise.
	* testsuite/util/testsuite_tr1.h: Add incomplete union type.

From-SVN: r271806
2019-05-31 11:35:03 +01:00
Jonathan Wakely aeedf07705 Fix random_device to work with COW strings again
Instead of duplicating the initialization functions that take string,
add a new member taking a raw pointer that can be used to convert the
constructor token from the old string to the new.

Also fix "mt19337" typos in a testcase.

	* include/bits/random.h (random_device::_M_init(const char*, size_t)):
	Add new private member function.
	* src/c++11/cow-string-inst.cc (random_device::_M_init(const string&))
	(random_device::_M_init_pretr1(const string&)): Call new private
	member with string data.
	* src/c++11/random.cc (random_device::_M_init(const char*, size_t)):
	Define.
	* testsuite/26_numerics/random/random_device/cons/default-cow.cc: New
	test using COW strings.
	* testsuite/26_numerics/random/random_device/cons/default.cc: Generate
	a value from the device.
	* testsuite/26_numerics/random/random_device/cons/token.cc: Likewise.
	Fix typo in token string.

From-SVN: r271805
2019-05-31 11:34:53 +01:00
Martin Liska decc53df4e Add pretty print for const_tree.
2019-05-31  Martin Liska  <mliska@suse.cz>

	* gdbhooks.py: Add const_tree to TreePrinter.

From-SVN: r271804
2019-05-31 10:33:14 +00:00
Thomas De Schampheleire d1137c020a re PR debug/86964 (Too many debug symbols included, especially for extern globals)
2019-05-31  Thomas De Schampheleire  <thomas.de_schampheleire@nokia.com>

	PR debug/86964
	* common.opt (feliminate-unused-debug-symbols): Enable by default.
	* doc/invoke.texi (Debugging Options): Document new default of
	-feliminate-unused-debug-symbols and remove restriction to 'stabs'.

	* g++.dg/debug/dwarf2/fesd-any.C: Use
	-fno-eliminate-unused-debug-symbols.
	* g++.dg/debug/dwarf2/fesd-baseonly.C: Likewise.
	* g++.dg/debug/dwarf2/fesd-none.C: Likewise.
	* g++.dg/debug/dwarf2/fesd-reduced.C: Likewise.
	* g++.dg/debug/dwarf2/fesd-sys.C: Likewise.
	* g++.dg/debug/dwarf2/inline-var-1.C: Likewise.
	* g++.dg/debug/enum-2.C: Likewise.
	* gcc.dg/debug/dwarf2/fesd-any.c: Likewise.
	* gcc.dg/debug/dwarf2/fesd-baseonly.c: Likewise.
	* gcc.dg/debug/dwarf2/fesd-none.c: Likewise.
	* gcc.dg/debug/dwarf2/fesd-reduced.c: Likewise.
	* gcc.dg/debug/dwarf2/fesd-sys.c: Likewise.

From-SVN: r271803
2019-05-31 08:22:14 +00:00
Jakub Jelinek 6992d6fbf2 re PR tree-optimization/90671 (ICE on valid code at -Os and above with -g enabled in gsi_split_seq_after, at gimple-iterator.c:345)
PR tree-optimization/90671
	* tree-ssa-threadupdate.c (ssa_create_duplicates): If
	template_block used to be empty on the first call, don't use
	gsi_split_seq_after and gsi_insert_seq_after, but remember whole
	seq with bb_seq and set it with set_bb_seq.

	* gcc.dg/torture/pr90671.c: New test.

From-SVN: r271802
2019-05-31 09:53:48 +02:00
Iain Sandoe 0eee8eaa83 c++, testsuite - require alias support for a test.
The test for pr84497 uses a facility that requires alias support from
the target, and therefore fails on targets without.  Add a suitable 
dg-require statement.

2019-05-31  Iain Sandoe  <iain@sandoe.co.uk>

	* g++.dg/cpp0x/pr84497.C: Require alias support.

From-SVN: r271801
2019-05-31 07:23:14 +00:00
Iain Sandoe 4ef2ef0c03 Darwin, x86, testsuite - adjust tests for Darwin's align syntax.
Darwin has a .align taking a power of 2 by default, so that some
tests expecting a byte count are failing, fixed thus.

gcc/testsuite/

2019-05-31  Iain Sandoe  <iain@sandoe.co.uk>

	* gcc.target/i386/falign-functions-3.c: Adjust align syntax
	and label for Darwin.
	* gcc.target/i386/attr-aligned-2.c: Adjust align syntax for
	Darwin.

From-SVN: r271800
2019-05-31 07:17:11 +00:00
Iain Sandoe eb11a55268 Darwin, x86 - We have .p2align, so declare its use.
.p2align support is present in all x86 assemblers on released
Darwin systems.

gcc/

2019-05-29  Iain Sandoe  <iain@sandoe.co.uk>

	* config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.

From-SVN: r271799
2019-05-31 07:13:46 +00:00
Bill Schmidt a1842c37af predicates.md (pcrel_address): New define_predicate.
2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/predicates.md (pcrel_address): New define_predicate.
	(prefixed_mem_operand): Likewise.
	(non_prefixed_mem_operand): Likewise.
	* config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
	prototype.
	* config/rs6000/rs6000.c (print_operand_address): Handle
	PC-relative addresses.
	(mode_supports_prefixed_address_p): New function.
	(rs6000_prefixed_address): New function.
	* config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
	(SYMBOL_REF_PCREL_P): Likewise.


Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>

From-SVN: r271798
2019-05-31 00:38:35 +00:00
Joseph Myers 47a665af3b * fi.po, sv.po: Update.
From-SVN: r271796
2019-05-31 01:28:14 +01:00
GCC Administrator 17c5c4c70b Daily bump.
From-SVN: r271795
2019-05-31 00:16:16 +00:00
Jakub Jelinek 8221c30b09 gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
	(gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
	(gimplify_omp_for): If worksharing loop with lastprivate conditional
	is nested inside of parallel region, add _condtemp_ clause to both.
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
	assertion failure.
	* omp-general.h (struct omp_for_data): Add have_pointer_condtemp
	member.
	* omp-general.c (omp_extract_for_data): Compute it.
	* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
	(lower_rec_input_clauses): Likewise.
	(lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
	clause is already present, just add one further one after it.
	(lower_lastprivate_clauses): Handle cond_ptr with array type.
	(lower_send_shared_vars): Clear _condtemp_ vars.
	(lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
	or section or taskgroup.
	* omp-expand.c (determine_parallel_type): Disallow combining only if
	first OMP_CLAUSE__CONDTEMP_ has pointer type.  Disallow combining
	of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
	(expand_omp_for_generic, expand_omp_for_static_nochunk,
	expand_omp_for_static_chunk, expand_omp_for): Use
	fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
	determine if a special set of API routines are needed and if condtemp
	needs to be initialized, while always initialize cond_var if
	fd->lastprivate_conditional is non-zero.

From-SVN: r271791
2019-05-30 23:19:39 +02:00
Jim Wilson 00a0e1f5a3 Fix RISC-V build failure for go language.
gcc/go/
	* go-gcc.cc (Gcc_backend::Gcc_backend): Add BUILT_IN_ATOMIC_FETCH_AND_1
	and BUILT_IN_ATOMIC_FETCH_OR_1.

From-SVN: r271790
2019-05-30 13:47:12 -07:00
Nina Dinka Ranns 046af809f3 LWG2788 basic_string spurious use of a default constructible allocator
This only change the cxx11 basic_string, because COW strings don't
correctly propagate allocators anyway.

2019-05-30  Nina Dinka Ranns  <dinka.ranns@gmail.com>

	LWG2788 basic_string spurious use of a default constructible allocator
	* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
	(basic_string::_M_replace_dispatch): Construct temporary string with
	the current allocator.
	* testsuite/21_strings/basic_string/allocator/char/lwg2788.cc: New.
	* testsuite/21_strings/basic_string/allocator/wchar_t/lwg2788.cc: New.

From-SVN: r271789
2019-05-30 20:48:48 +01:00
Marek Polacek 608f8e107d * cp-tree.h (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Fix a typo.
From-SVN: r271788
2019-05-30 18:40:17 +00:00
Bill Schmidt ed383d79ee constraints.md (eI): New constraint.
2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/constraints.md (eI): New constraint.
	* config/rs6000/predicates.md (cint34_operand): New predicate.
	* config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
	(SIGNED_34BIT_OFFSET_P): Likewise.
	* doc/md.texi (eI): Document constraint.


Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>

From-SVN: r271787
2019-05-30 18:13:06 +00:00
Thomas Koenig 93f096795b gfc-internals.texi (Translating to GENERIC): New chapter.
2019-05-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

    * gfc-internals.texi (Translating to GENERIC): New chapter.

From-SVN: r271786
2019-05-30 17:49:31 +00:00
Sylvia Taylor 3db85990db [aarch64]: add support for fabd in sve
This patch adds support in SVE to combine:
- fsub and fabs into fabd

fsub    z0.s, z0.s, z1.s
fabs    z0.s, p1/m, z0.s
---
fabd    z0.s, p1/m, z0.s, z1.s

2019-05-30  Sylvia Taylor  <sylvia.taylor@arm.com>

gcc/
	* config/aarch64/aarch64-sve.md (*fabd<mode>3): New.

gcc/testsuite/
	* gcc.target/aarch64/sve/fabd_1.c: New.

From-SVN: r271785
2019-05-30 17:36:52 +00:00
Ian Lance Taylor c9c41a6b1b compiler: intrinsify sync/atomic functions
Let the Go frontend recognize sync/atomic functions and turn them
    into intrinsics.
    
    Also make sure not to intrinsify calls in go or defer statements.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/178937

From-SVN: r271784
2019-05-30 17:26:46 +00:00
Jakub Jelinek d05b516e53 re PR c++/90598 (Return type of explicit destructor call wrong)
PR c++/90598
	* tree.c (lvalue_kind): Return clk_none for expressions with
	with VOID_TYPE_P.

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

From-SVN: r271783
2019-05-30 19:23:32 +02:00
Jonathan Wakely 01b3b9e39f Update libstdc++ documentation for Support and Diagnostics clauses
* doc/xml/manual/diagnostics.xml: Update list of headers that define
	exception classes.
	* doc/xml/manual/support.xml: Rewrite advice around NULL. Rewrite
	section about new/delete overloads. Improve section on verbose
	terminate handler.
	* doc/html/*: Regenerate.

From-SVN: r271782
2019-05-30 16:47:32 +01:00
Bill Schmidt 30f78ec756 rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Michael Meissner  <meissner@linux.ibm.com>

	* rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
	(ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
	(ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
	(ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
	(OTHER_FUTURE_MASKS): Likewise.
	(POWERPC_MASKS): Likewise.
	* rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
	specified without -mprefixed-addr or -mcpu=future.  Error if
	-mprefixed-addr is specified without -mcpu=future.
	(rs6000_opt_masks): Add entry for prefixed-addr.
	* rs6000.opt (mprefixed-addr): New option.


Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>

From-SVN: r271781
2019-05-30 15:17:40 +00:00
Sam Tebbs 0e2e15abd0 [PATCH][GCC][AARCH64] Fix libstdc++ build failure after r271735
gcc/ChangeLog
	* aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
	cfun->is_thunk check.

From-SVN: r271780
2019-05-30 12:26:14 +00:00
Marek Polacek d4ecfa565c * lang.opt (ftail-call-workaround): Fix a typo.
From-SVN: r271777
2019-05-30 11:44:40 +00:00
Jonathan Wakely 62971f4644 Update C++20 status table
The status of P1353R0 was "Partial" because we don't define the
__cpp_lib_three_way_comparison macro, but that's because we don't
support the feature. So the paper can be marked as done.

	* doc/xml/manual/status_cxx2020.xml: Add feature-test macro for
	P0811R3. Change status of P1353R0.
	* doc/html/*: Regenerate.

From-SVN: r271774
2019-05-30 11:31:54 +01:00
Jonathan Wakely 37ad0fc942 Update documentation of implementation-defined library features
* doc/xml/manual/status_cxx2011.xml: Use <variablelist> for
	documentation of implementation-defined types for [thread.req.native].
	* doc/xml/manual/status_cxx2017.xml: Update documentation of
	implementation-defined strings for [variant.bad.access]. Fix typo in
	documentation of implementation-defined support for [fs.conform.9945].
	* doc/html/*: Regenerate.

From-SVN: r271773
2019-05-30 11:14:06 +01:00
Jakub Jelinek 02fac2442e tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght to length.
* tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
	to length.

	* lang.opt (ftail-call-workaround=): Fix a typo - lenghts to lengths.

From-SVN: r271770
2019-05-30 11:33:20 +02:00
Rainer Orth a7155c2e0b Generalize getconf _NPROCESSORS_ONLN
libgomp:
	* configure.ac: Call AX_COUNT_CPUS.
	Substitute CPU_COUNT.
	* testsuite/Makefile.am (check-am): Use CPU_COUNT as processor
	count fallback.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in, testsuite/Makefile.in: Regenerate.

	config:
	* ax_count_cpus.m4: New file.

From-SVN: r271769
2019-05-30 09:06:48 +00:00
Iain Sandoe b8148c42da testsuite,x86 - require native TLS for two tests that use it.
gcc/testsuite/

2019-05-30  Iain Sandoe  <iain@sandoe.co.uk>

	* gcc.target/i386/pr86257.c: Require native TLS support.
	* gcc.target/i386/stack-prot-sym.c: Likewise.

From-SVN: r271768
2019-05-30 08:43:19 +00:00
Martin Liska 7c83619cd6 gdbinit: add a new command and fix one
2019-05-30  Martin Liska  <mliska@suse.cz>

	* gdbinit.in: Fix 'ptc' command.  Add trt
	that prints TREE_TYPE($).

From-SVN: r271763
2019-05-30 07:50:39 +00:00
Paolo Carlini 7797a62244 decl.c (grokdeclarator): Use declarator->id_loc in five error_at calls.
/cp
2019-05-31  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (grokdeclarator): Use declarator->id_loc in five
	error_at calls.

/testsuite
2019-05-31  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp0x/alias-decl-18.C: Test location too.
	* g++.dg/cpp0x/udlit-nofunc-neg.C: Likewise.
	* g++.dg/parse/crash59.C: Likewise.
	* g++.dg/parse/error38.C: Likewise.
	* g++.dg/parse/error39.C: Likewise.
	* g++.dg/template/crash31.C: Likewise.
	* g++.dg/template/operator8.C: Likewise.
	* g++.dg/template/operator9.C: Likewise.

From-SVN: r271762
2019-05-30 07:09:41 +00:00
Ian Lance Taylor 979ca9cc9e re PR go/90669 (go/gofrontend/types.cc:2805 contains range-based ‘for’ loops which are not C++98)
PR go/90669
    compiler: remove range-based 'for' loop
    
    Fix for GCC PR/90669: remove range-based 'for' loop to preserve
    buildability with g++ version 4.X.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/179397

From-SVN: r271761
2019-05-30 00:57:11 +00:00
GCC Administrator e6f2328f3e Daily bump.
From-SVN: r271760
2019-05-30 00:16:17 +00:00
Jonathan Wakely ea16f6acb0 PR libstdc++/85494 fix failing test
This test now fails on mingw-w64 because it's no longer always true that
the mt19937 engine is used when _GLIBCXX_USE_DEV_RANDOM is not defined.

Add tests for all the known tokens to ensure that at least one is
accepted.

	* testsuite/26_numerics/random/random_device/cons/token.cc: Fix test
	that fails on mingw-w64.

From-SVN: r271756
2019-05-29 23:00:57 +01:00
Jonathan Wakely 3cb929a32a PR libstdc++/88881 fix filesystem::symlink_status for Windows
The fix for PR 88881 only added a workaround to filesystem::status, but
filesystem::symlink_status is also affected by the _wstat bug and needs
the same workaround.

The recent change to optimize path::parent_path() means that the
workaround can be simplified to just use parent_path().

	PR libstdc++/88881
	* src/c++17/fs_ops.cc [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
	(status(const path&, error_code&)): Use parent_path() to remove
	trailing slash.
	(symlink_status(const path&, error_code&)): Duplicate workaround for
	bug in _wstat for paths with trailing slash.
	* testsuite/27_io/filesystem/operations/remove_all.cc: Check path
	with trailing slash.
	* testsuite/27_io/filesystem/operations/status.cc: Likewise.
	* testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.

From-SVN: r271755
2019-05-29 23:00:53 +01:00
Jonathan Wakely e5ccb10ad0 Optimize filesystem::path::parent_path()
Parsing a complete string is more efficient than appending each
component one-by-one.

	* src/c++17/fs_path.cc (path::parent_path()): Create whole path at
	once instead of building it iteratively.

From-SVN: r271754
2019-05-29 23:00:45 +01:00
Bill Schmidt e800d6dc2c rs6000.c (rs6000_call_template_1): Handle pcrel calls here...
[gcc]

2019-05-29  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
	calls here...
	(rs6000_indirect_call_template_1): ...and here.
	(rs6000_pltseq_template): Handle plt_pcrel34.  Rework tocsave,
	plt16_ha, plt16_lo, mtctr indirect calls.  Use
	rs6000_pltseq_enum.
	(rs6000_decl_ok_for_sibcall): New function.
	(rs6000_function_ok_for_sibcall): Refactor.
	(rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
	(rs6000_call_aix): Don't emit toc restore rtl for indirect calls
	when pcrel.  Reorganize.
	(rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
	* rs6000.h (rs6000_pltseq_enum): New enum.
	* rs6000.md (UNSPEC_PLT_PCREL): New unspec.
	(*pltseq_tocsave): Use rs6000_pltseq_enum.
	(*pltseq_plt16_ha): Likewise.
	(*pltseq_plt16_lo): Likewise.
	(*pltseq_mtctr): Likewise.
	(*pltseq_plt_pcrel): New insn.
	(*call_local_aix): Handle @notoc calls.
	(*call_value_local_aix): Likewise.
	(*call_nonlocal_aix): Adjust lengths for pcrel calls.
	(*call_value_nonlocal_aix): Likewise.
	(*call_indirect_pcrel): New insn.
	(*call_value_indirect_pcrel): Likewise.


[gcc/testsuite]

2019-05-29  Bill Schmidt  <wschmidt@linux.ibm.com>

	* gcc.target/powerpc/notoc-direct-1.c: New.
	* gcc.target/powerpc/pcrel-sibcall-1.c: New.


Co-Authored-By: Alan Modra <amodra@gmail.com>

From-SVN: r271753
2019-05-29 21:50:09 +00:00
Jakub Jelinek 874f88c43b re PR c++/90598 (Return type of explicit destructor call wrong)
PR c++/90598
	* tree.c (lvalue_kind): Return clk_none for expressions with
	with VOID_TYPE_P.

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

From-SVN: r271752
2019-05-29 23:33:18 +02:00
Thomas Koenig 1585b48323 re PR fortran/90539 (481.wrf slowdown by 25% on Intel Kaby with -Ofast -march=native starting with r271377)
2019-05-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/90539
	* gfortran.h (gfc_has_dimen_vector_ref): Add prototype.
	* trans.h (gfc_conv_subref_array_arg): Add argument check_contiguous.
	(gfc_conv_is_contiguous_expr): Add prototype.
	* frontend-passes.c (has_dimen_vector_ref): Remove prototype,
	rename to
	(gfc_has_dimen_vector_ref): New function name.
	(matmul_temp_args): Use gfc_has_dimen_vector_ref.
	(inline_matmul_assign): Likewise.
	* trans-array.c (gfc_conv_array_parameter): Also check for absence
	of a vector subscript before calling gfc_conv_subref_array_arg.
	Pass additional argument to gfc_conv_subref_array_arg.
	* trans-expr.c (gfc_conv_subref_array_arg): Add argument
	check_contiguous. If that is true, check if the argument
	is contiguous and do not repack in that case.
	* trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): Split
	away most of the work into, and call
	(gfc_conv_intrinsic_is_coniguous_expr): New function.

2019-05-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/90539
	* gfortran.dg/internal_pack_21.f90: Adjust scan patterns.
	* gfortran.dg/internal_pack_22.f90: New test.
	* gfortran.dg/internal_pack_23.f90: New test.

From-SVN: r271751
2019-05-29 20:30:45 +00:00
Jan Hubicka 987c9fc581 * tree-ssa/alias-access-spath-1.c: new testcase.
From-SVN: r271750
2019-05-29 19:51:24 +00:00
Uros Bizjak 5a158e54ab sse.md (*save_multiple<mode>): Rename from save_multiple<mode>.
* config/i386/sse.md (*save_multiple<mode>): Rename from
	save_multiple<mode>.
	(*restore_multiple<mode>): Rename from restore_multiple<mode>.
	(*restore_multiple_and_return<mode>): Rename from
	restore_multiple_and_return<mode>.
	(*restore_multiple_leave_return<mode>): Rename from
	restore_multiple_leave_return<mode>.

From-SVN: r271749
2019-05-29 20:51:41 +02:00
Yoshinori Sato 76aaa9cdb1 config.gcc (rx-*-linux*): New target.
* config.gcc (rx-*-linux*): New target.
	* config/rx/elf.opt: New file.
	* config/rx/linux.h: Likewise.
	* config/rx/t-linux: Likewise.
	* config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
	make it zero.
	* config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
	(ASM_APP_OFF): Likewise.
	* config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
	moved elsewhere.

	* config.host (rx-*-linux*): Add new case.
	* config/rx/t-rx (HOST_LIBGCC2_CFLAGS): Force DFmode to SFmode.

From-SVN: r271748
2019-05-29 12:36:06 -06:00
Jan Hubicka 01a58e3698 tree-ssa-alias.c (same_type_for_tbaa): Return ture if main variants are pointer equivalent.
* tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
	variants are pointer equivalent.

From-SVN: r271747
2019-05-29 18:13:51 +00:00