1. 26 Jul, 2018 24 commits
    • re PR target/86612 (__strdup problem on power 9) · 2686c842
      	PR target/86612
      	* gcc.target/powerpc/pr58673-2.c: Call strdup.
      
      From-SVN: r263020
      Pat Haugen committed
    • PR tree-optimization/86043 - strlen after memcpy partially overwriting a string not optimized · aca8570e
      PR tree-optimization/86043 - strlen after memcpy partially overwriting a string not optimized
      PR tree-optimization/86042 - missing strlen optimization after second strcpy
      
      gcc/ChangeLog:
      
      	PR tree-optimization/86043
      	PR tree-optimization/86042
      	* tree-ssa-strlen.c (handle_builtin_memcpy): Handle strict overlaps.
      	(get_string_cst_length): Rename...
      	(get_min_string_length): ...to this.  Add argument.
      	(handle_char_store): Extend to handle multi-character stores by
      	MEM_REF.
      	* tree.c (initializer_zerop): Use new argument.  Handle MEM_REF.
      	* tree.h (initializer_zerop): Add argument.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/86043
      	PR tree-optimization/86042
      	* gcc/testsuite/gcc.dg/attr-nonstring-2.c: Xfail test cases due to
      	pr86688.
      	* gcc.dg/strlenopt-44.c: New test.
      
      From-SVN: r263018
      Martin Sebor committed
    • * src/c++98/locale_init.cc: Fix #ifdef condition. · 4b8b1f59
      From-SVN: r263016
      Marek Polacek committed
    • re PR middle-end/86660 (libgomp.c++/for-15.C ICEs with nvptx offloading) · 5d36384c
      	PR testsuite/86660
      	* testsuite/libgomp.c++/for-15.C (results): Include it in
      	omp declare target region.
      	(main): Use map (always, tofrom: results) instead of
      	map (tofrom: results).
      
      From-SVN: r263011
      Jakub Jelinek committed
    • re PR middle-end/86660 (libgomp.c++/for-15.C ICEs with nvptx offloading) · 5883c5cc
      	PR middle-end/86660
      	* omp-low.c (scan_sharing_clauses): Don't ignore map clauses for
      	declare target to variables if they have always,{to,from,tofrom} map
      	kinds.
      
      	* testsuite/libgomp.c/pr86660.c: New test.
      
      From-SVN: r263010
      Jakub Jelinek committed
    • libsanitizer: Mark REAL(swapcontext) with indirect_return attribute on x86 · c83b4b82
      Cherry-pick compiler-rt revision 337603:
      
      When shadow stack from Intel CET is enabled, the first instruction of all
      indirect branch targets must be a special instruction, ENDBR.
      
      lib/asan/asan_interceptors.cc has
      
      ...
        int res = REAL(swapcontext)(oucp, ucp);
      ...
      
      REAL(swapcontext) is a function pointer to swapcontext in libc.  Since
      swapcontext may return via indirect branch on x86 when shadow stack is
      enabled, as in this case,
      
      int res = REAL(swapcontext)(oucp, ucp);
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  This function may be
      returned via an indirect branch.
      
      Here compiler must insert ENDBR after call, like
      
      call *bar(%rip)
      endbr64
      
      I opened an LLVM bug:
      
      https://bugs.llvm.org/show_bug.cgi?id=38207
      
      to add the indirect_return attribute so that it can be used to inform
      compiler to insert ENDBR after REAL(swapcontext) call.  We mark
      REAL(swapcontext) with the indirect_return attribute if it is available.
      
      This fixed:
      
      https://bugs.llvm.org/show_bug.cgi?id=38249
      
      Reviewed By: eugenis
      
      Differential Revision: https://reviews.llvm.org/D49608
      
      	PR target/86560
      	* asan/asan_interceptors.cc (swapcontext) Cherry-pick
      	compiler-rt revision 337603.
      	* sanitizer_common/sanitizer_internal_defs.h (__has_attribute):
      	Likewise.
      
      From-SVN: r263009
      H.J. Lu committed
    • Add missing dg-require-cstdint directives to tests · 49ba2588
      	* testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add
      	dg-require-cstdint directive.
      	* testsuite/20_util/allocator/overaligned.cc: Likewise.
      	* testsuite/20_util/any/cons/aligned.cc: Likewise.
      	* testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise.
      	* testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise.
      	* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
      	Likewise.
      	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
      	* testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise.
      	* testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
      	* testsuite/25_algorithms/make_heap/complexity.cc: Likewise.
      	* testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and
      	random_device effective-target.
      	* testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
      	* testsuite/25_algorithms/sample/1.cc: Require cstdint.
      	* testsuite/25_algorithms/sample/2.cc: Likewise.
      	* testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint
      	and random_device.
      	* testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require
      	cstdint.
      	* testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
      	Likewise.
      	* testsuite/26_numerics/random/discard_block_engine/requirements/
      	constexpr_data.cc: Likewise.
      	* testsuite/26_numerics/random/discard_block_engine/requirements/
      	constexpr_functions.cc: Likewise.
      	* testsuite/26_numerics/random/independent_bits_engine/requirements/
      	constexpr_functions.cc: Likewise.
      	* testsuite/26_numerics/random/linear_congruential_engine/requirements/
      	constexpr_data.cc: Likewise.
      	* testsuite/26_numerics/random/linear_congruential_engine/requirements/
      	constexpr_functions.cc: Likewise.
      	* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
      	constexpr_data.cc: Likewise.
      	* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
      	constexpr_functions.cc: Likewise.
      	* testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
      	* testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise.
      	* testsuite/26_numerics/random/shuffle_order_engine/requirements/
      	constexpr_data.cc: Add dg-require-cstdint directive.
      	* testsuite/26_numerics/random/shuffle_order_engine/requirements/
      	constexpr_functions.cc: Likewise.
      	* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
      	constexpr_data.cc: Likewise.
      	* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
      	constexpr_functions.cc: Likewise.
      	* testsuite/26_numerics/random/uniform_real_distribution/operators/
      	64351.cc: Likewise.
      	* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
      	* testsuite/experimental/algorithm/sample-2.cc: Likewise.
      	* testsuite/experimental/algorithm/sample.cc: Likewise.
      	* testsuite/experimental/algorithm/search.cc: Likewise.
      	* testsuite/experimental/algorithm/shuffle.cc: Likewise.
      	* testsuite/experimental/any/cons/aligned.cc: Likewise.
      	* testsuite/experimental/memory_resource/new_delete_resource.cc:
      	Likewise.
      	* testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise.
      	* testsuite/experimental/random/randint.cc: Likewise.
      	* testsuite/experimental/source_location/1.cc: Likewise.
      	* testsuite/ext/bitmap_allocator/overaligned.cc: Likewise.
      	* testsuite/ext/malloc_allocator/overaligned.cc: Likewise.
      	* testsuite/ext/mt_allocator/overaligned.cc: Likewise.
      	* testsuite/ext/new_allocator/overaligned.cc: Likewise.
      	* testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
      	* testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
      	* testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
      	* testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
      	* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
      	* testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
      	* testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
      	* testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
      	* testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
      	* testsuite/ext/pool_allocator/overaligned.cc: Likewise.
      	* testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise.
      	* testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise.
      	* testsuite/ext/throw_allocator/check_delete.cc: Likewise.
      	* testsuite/ext/throw_allocator/check_new.cc: Likewise.
      	* testsuite/ext/throw_allocator/deallocate_global.cc: Likewise.
      	* testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
      	* testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise.
      	* testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
      	* testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
      
      From-SVN: r263008
      Jonathan Wakely committed
    • Remove dg-require-cstdint directive from tests · 47114f2d
      Tests for components which are no longer dependent on
      _GLIBCXX_USE_C99_STDINT_TR1 do not need to require <cstdint>.
      
      	* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/dest/
      	destructor_locked.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/native_handle/
      	typesizes.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
      	* testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
      	* testsuite/30_threads/scoped_lock/requirements/
      	explicit_instantiation.cc: Likewise.
      	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
      	* testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
      	* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
      	* testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
      	* testsuite/30_threads/shared_future/cons/default.cc: Likewise.
      	* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
      	* testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/get.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
      	* testsuite/30_threads/shared_future/requirements/
      	explicit_instantiation.cc: Likewise.
      	* testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
      	* testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
      	* testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
      	* testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
      	* testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
      	* testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
      	* testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
      	* testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
      	* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
      	* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
      	* testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
      	* testsuite/30_threads/shared_lock/requirements/
      	explicit_instantiation.cc: Likewise.
      	* testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
      	* testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
      	* testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise.
      	* testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
      	* testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
      	Likewise.
      	* testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
      	* testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
      	* testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
      	* testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
      	* testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
      	* testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
      	* testsuite/30_threads/shared_timed_mutex/requirements/
      	standard_layout.cc: Likewise.
      	* testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
      	* testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
      	* testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
      	* testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
      	* testsuite/30_threads/this_thread/1.cc: Likewise.
      	* testsuite/30_threads/this_thread/2.cc: Likewise.
      	* testsuite/30_threads/this_thread/3.cc: Likewise.
      	* testsuite/30_threads/this_thread/4.cc: Likewise.
      	* testsuite/30_threads/this_thread/58038.cc: Likewise.
      	* testsuite/30_threads/thread/70503.cc: Likewise.
      	* testsuite/30_threads/thread/84532.cc: Likewise.
      	* testsuite/30_threads/thread/adl.cc: Likewise.
      	* testsuite/30_threads/thread/cons/1.cc: Likewise.
      	* testsuite/30_threads/thread/cons/2.cc: Likewise.
      	* testsuite/30_threads/thread/cons/3.cc: Likewise.
      	* testsuite/30_threads/thread/cons/4.cc: Likewise.
      	* testsuite/30_threads/thread/cons/49668.cc: Likewise.
      	* testsuite/30_threads/thread/cons/5.cc: Likewise.
      	* testsuite/30_threads/thread/cons/6.cc: Likewise.
      	* testsuite/30_threads/thread/cons/7.cc: Likewise.
      	* testsuite/30_threads/thread/cons/8.cc: Likewise.
      	* testsuite/30_threads/thread/cons/84535.cc: Likewise.
      	* testsuite/30_threads/thread/cons/9.cc: Likewise.
      	* testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
      	* testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
      	* testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
      	* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
      	* testsuite/30_threads/thread/cons/terminate.cc: Likewise.
      	* testsuite/30_threads/thread/id/operators.cc: Likewise.
      	* testsuite/30_threads/thread/members/1.cc: Likewise.
      	* testsuite/30_threads/thread/members/2.cc: Likewise.
      	* testsuite/30_threads/thread/members/3.cc: Likewise.
      	* testsuite/30_threads/thread/members/4.cc: Likewise.
      	* testsuite/30_threads/thread/members/5.cc: Likewise.
      	* testsuite/30_threads/thread/members/hardware_concurrency.cc:
      	Likewise.
      	* testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
      	* testsuite/30_threads/thread/swap/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
      	Likewise.
      	* testsuite/30_threads/timed_mutex/requirements/
      	standard_layout.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
      	* testsuite/30_threads/try_lock/1.cc: Likewise.
      	* testsuite/30_threads/try_lock/2.cc: Likewise.
      	* testsuite/30_threads/try_lock/3.cc: Likewise.
      	* testsuite/30_threads/try_lock/4.cc: Likewise.
      	* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
      	* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
      	* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
      	* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
      	* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
      	* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
      	* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
      	* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
      	* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
      	* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
      	* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
      	* testsuite/30_threads/unique_lock/requirements/
      	explicit_instantiation.cc: Likewise.
      	* testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
      
      From-SVN: r263007
      Jonathan Wakely committed
    • Remove dg-require-cstdint directive from tests · c37f07c4
      Tests for components which are no longer dependent on
      _GLIBCXX_USE_C99_STDINT_TR1 do not need to require <cstdint>.
      
      	* testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint
      	directive.
      	* testsuite/30_threads/async/49668.cc: Likewise.
      	* testsuite/30_threads/async/54297.cc: Likewise.
      	* testsuite/30_threads/async/84532.cc: Likewise.
      	* testsuite/30_threads/async/any.cc: Likewise.
      	* testsuite/30_threads/async/async.cc: Likewise.
      	* testsuite/30_threads/async/except.cc: Likewise.
      	* testsuite/30_threads/async/forced_unwind.cc: Likewise.
      	* testsuite/30_threads/async/launch.cc: Likewise.
      	* testsuite/30_threads/async/lwg2021.cc: Likewise.
      	* testsuite/30_threads/async/sync.cc: Likewise.
      	* testsuite/30_threads/call_once/39909.cc: Likewise.
      	* testsuite/30_threads/call_once/49668.cc: Likewise.
      	* testsuite/30_threads/call_once/60497.cc: Likewise.
      	* testsuite/30_threads/call_once/call_once1.cc: Likewise.
      	* testsuite/30_threads/call_once/constexpr.cc: Likewise.
      	* testsuite/30_threads/call_once/dr2442.cc: Likewise.
      	* testsuite/30_threads/call_once/once_flag.cc: Likewise.
      	* testsuite/30_threads/condition_variable/54185.cc: Likewise.
      	* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
      	* testsuite/30_threads/condition_variable/cons/assign_neg.cc:
      	Likewise.
      	* testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
      	* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
      	* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
      	* testsuite/30_threads/condition_variable/members/3.cc: Likewise.
      	* testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
      	* testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
      	* testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
      	Likewise.
      	* testsuite/30_threads/condition_variable/requirements/
      	standard_layout.cc: Likewise.
      	* testsuite/30_threads/condition_variable/requirements/typedefs.cc:
      	* Likewise.
      	* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
      	* testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
      	* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
      	* testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
      	Likewise.
      	* testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
      	Likewise.
      	* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
      	* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
      	* testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
      	* testsuite/30_threads/future/cons/constexpr.cc: Likewise.
      	* testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
      	* testsuite/30_threads/future/cons/default.cc: Likewise.
      	* testsuite/30_threads/future/cons/move.cc: Likewise.
      	* testsuite/30_threads/future/cons/move_assign.cc: Likewise.
      	* testsuite/30_threads/future/members/45133.cc: Likewise.
      	* testsuite/30_threads/future/members/get.cc: Likewise.
      	* testsuite/30_threads/future/members/get2.cc: Likewise.
      	* testsuite/30_threads/future/members/share.cc: Likewise.
      	* testsuite/30_threads/future/members/valid.cc: Likewise.
      	* testsuite/30_threads/future/members/wait.cc: Likewise.
      	* testsuite/30_threads/future/members/wait_for.cc: Likewise.
      	* testsuite/30_threads/future/members/wait_until.cc: Likewise.
      	* testsuite/30_threads/future/requirements/explicit_instantiation.cc:
      	Likewise.
      	* testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc:
      	Likewise.
      	* testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
      	* testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
      	* testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
      	* testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
      	* testsuite/30_threads/lock/1.cc: Likewise.
      	* testsuite/30_threads/lock/2.cc: Likewise.
      	* testsuite/30_threads/lock/3.cc: Likewise.
      	* testsuite/30_threads/lock/4.cc: Likewise.
      	* testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
      	* testsuite/30_threads/lock_guard/requirements/
      	explicit_instantiation.cc: Likewise.
      	* testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
      	* testsuite/30_threads/mutex/cons/1.cc: Likewise.
      	* testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
      	* testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
      	* testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
      	* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
      	* testsuite/30_threads/mutex/lock/1.cc: Likewise.
      	* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
      	* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
      	* testsuite/30_threads/mutex/requirements/standard_layout.cc::
      	Likewise.
      	* testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
      	* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
      	* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
      	* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
      	* testsuite/30_threads/mutex/unlock/2.cc: Likewise.
      	* testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
      	* testsuite/30_threads/packaged_task/49668.cc: Likewise.
      	* testsuite/30_threads/packaged_task/60564.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
      	Likewise.
      	* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
      	* testsuite/30_threads/packaged_task/requirements/
      	explicit_instantiation.cc: Likewise.
      	* testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
      	* testsuite/30_threads/promise/60966.cc: Likewise.
      	* testsuite/30_threads/promise/69106.cc: Likewise.
      	* testsuite/30_threads/promise/cons/1.cc: Likewise.
      	* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
      	* testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
      	* testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
      	* testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
      	* testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
      	* testsuite/30_threads/promise/cons/move.cc: Likewise.
      	* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
      	* testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
      	* testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
      	* testsuite/30_threads/promise/members/get_future.cc: Likewise.
      	* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
      	* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
      	* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
      	* testsuite/30_threads/promise/members/set_value.cc: Likewise.
      	* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
      	* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
      	* testsuite/30_threads/promise/members/swap.cc: Likewise.
      	* testsuite/30_threads/promise/requirements/explicit_instantiation.cc:
      	* Likewise.
      	* testsuite/30_threads/promise/uses_allocator.cc: Likewise.
      
      From-SVN: r263006
      Jonathan Wakely committed
    • Remove dg-require-cstdint directive from tests · 2b69e93c
      Tests for components which are no longer dependent on
      _GLIBCXX_USE_C99_STDINT_TR1 do not need to require <cstdint>.
      
      	* testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names
      	from namespace std.
      	* testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive.
      	* testsuite/20_util/duration/arithmetic/1.cc: Likewise.
      	* testsuite/20_util/duration/arithmetic/2.cc: Likewise.
      	* testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
      	* testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
      	* testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
      	* testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
      	* testsuite/20_util/duration/cons/1.cc: Likewise.
      	* testsuite/20_util/duration/cons/1_neg.cc: Likewise.
      	* testsuite/20_util/duration/cons/2.cc: Likewise.
      	* testsuite/20_util/duration/cons/54025.cc: Likewise.
      	* testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
      	* testsuite/20_util/duration/requirements/explicit_instantiation/
      	explicit_instantiation.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
      	* testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise.
      	* testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
      	* testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
      	* testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
      	* testsuite/20_util/ratio/cons/cons1.cc: Likewise.
      	* testsuite/20_util/ratio/operations/45866.cc: Likewise.
      	* testsuite/20_util/ratio/operations/47913.cc: Likewise.
      	* testsuite/20_util/ratio/operations/53840.cc: Likewise.
      	* testsuite/20_util/ratio/operations/ops1.cc: Likewise.
      	* testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
      	* testsuite/20_util/system_clock/1.cc: Likewise.
      	* testsuite/20_util/time_point/1.cc: Likewise.
      	* testsuite/20_util/time_point/2.cc: Likewise.
      	* testsuite/20_util/time_point/3.cc: Likewise.
      	* testsuite/20_util/time_point/requirements/explicit_instantiation/
      	explicit_instantiation.cc: Likewise.
      	* testsuite/21_strings/basic_string/requirements/
      	explicit_instantiation/char16_t/1.cc: Likewise.
      	* testsuite/21_strings/basic_string/requirements/
      	explicit_instantiation/char32_t/1.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/requirements/
      	explicit_instantiation/char16_t/1.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/requirements/
      	explicit_instantiation/char32_t/1.cc: Likewise.
      	* testsuite/21_strings/char_traits/requirements/
      	explicit_instantiation/char16_t/1.cc: Likewise.
      	* testsuite/21_strings/char_traits/requirements/
      	explicit_instantiation/char32_t/1.cc: Likewise.
      	* testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise.
      	* testsuite/22_locale/codecvt/char16_t.cc: Likewise.
      	* testsuite/22_locale/codecvt/char32_t.cc: Likewise.
      	* testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
      	Likewise.
      	* testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
      	Likewise.
      	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
      	Likewise.
      	* testsuite/22_locale/codecvt/utf8.cc: Likewise.
      	* testsuite/23_containers/vector/bool/72847.cc: Likewise.
      	* testsuite/23_containers/vector/debug/multithreaded_swap.cc:
      	Likewise.
      	* testsuite/experimental/string_view/requirements/
      	explicit_instantiation/char16_t/1.cc: Likewise.
      	* testsuite/experimental/string_view/requirements/
      	explicit_instantiation/char32_t/1.cc: Likewise.
      	* testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/
      	1.cc: Likewise.
      	* testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/
      	1.cc: Likewise.
      
      From-SVN: r263005
      Jonathan Wakely committed
    • Add missing checks for _GLIBCXX_USE_C99_STDINT_TR1 · 54c67432
      The throw_allocator extension depends on <tr1/random> which depends on
      _GLIBCXX_USE_C99_STDINT_TR1.
      
      The Transactional Memory support uses fixed-width integer types from
      <stdint.h>.
      
      	* include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(random_condition, throw_value_random, throw_allocator_random)
      	(std::hash<throw_value_random>): Do not define when <tr1/random> is
      	not usable.
      	* src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
      	define transactional memory support when <stdint.h> is not usable.
      
      From-SVN: r263004
      Jonathan Wakely committed
    • Modify some library internals to work without <stdint.h> · 4957b284
      std::__detail::__clp2 used uint_fast32_t and uint_fast64_t without
      checking _GLIBCXX_USE_C99_STDINT_TR1 which was a potential bug. A
      simpler implementation based on the new std::__ceil2 code performs
      better and doesn't depend on <stdint.h> types.
      
      std::align and other C++11 functions in <memory> where unnecessarily
      missing when _GLIBCXX_USE_C99_STDINT_TR1 was not defined.
      
      	* include/bits/hashtable_policy.h (__detail::__clp2): Use faster
      	implementation that doesn't depend on <stdint.h> types.
      	* include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
      	std::size_t when std::uintptr_t is not usable.
      	[!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
      	(undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
      	Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
      
      From-SVN: r263003
      Jonathan Wakely committed
    • Remove char16_t and char32_t dependency on <stdint.h> · 612c9c70
      The char16_t and char32_t types are automatically defined by the
      compiler and do not depend on support in <stdint.h>. The char_traits
      specializations depend on uint_leastNN_t but can be made to work anyway
      by using the predefined macros, or as a last resort make_unsigned.
      
      	* include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(hash<u16string>, hash<u32string>): Remove dependency on
      	_GLIBCXX_USE_C99_STDINT_TR1.
      	* include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
      	_GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
      	__UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
      	* include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(codecvt<char16_t, char, mbstate_t>)
      	(codecvt<char32_t, char, mbstate_t>)
      	(codecvt_byname<char16_t, char, mbstate_t>)
      	(codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
      	on _GLIBCXX_USE_C99_STDINT_TR1.
      	* include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
      	* include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(char_traits<char16_t>, char_traits<char32_t>)
      	(basic_string<char16_t>, basic_string<char32_t>): Remove dependency
      	on _GLIBCXX_USE_C99_STDINT_TR1.
      	* include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(u16string_view, u32string_view, hash<u16string_view>)
      	(hash<u32string_view>, operator""sv(const char16_t, size_t))
      	(operator""sv(const char32_t, size_t)): Likewise.
      	* include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(hash<__u16vstring>, hash<__u32vstring>): Likewise.
      	* include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
      	(__u32sso_string, __u32rc_string): Likewise.
      	* include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
      	(codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
      	* include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(u16string_view, u32string_view, hash<u16string_view>)
      	(hash<u32string_view>, operator""sv(const char16_t, size_t))
      	(operator""sv(const char32_t, size_t)): Likewise.
      	* src/c++11/codecvt.cc: Likewise.
      	* src/c++98/locale_init.cc: Likewise.
      	* src/c++98/localename.cc: Likewise.
      
      From-SVN: r263002
      Jonathan Wakely committed
    • Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 · 8ba7f29e
      By adding fallback definitions of std::intmax_t and std::uintmax_t it's
      possible to define <ratio> without _GLIBCXX_USE_C99_STDINT_TR1. This in
      turn allows most of <chrono> to be defined, which removes the dependency
      on _GLIBCXX_USE_C99_STDINT_TR1 for all of the C++11 concurrency features.
      
      The compiler defines __INTMAX_TYPE__ and __UINTMAX_TYPE__
      unconditionally so it should be safe to rely on them.
      
      	* include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(__atomic_futex_unsigned_base): Remove dependency on
      	_GLIBCXX_USE_C99_STDINT_TR1 macro.
      	* include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
      	* include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
      	(uintmax_t): Define using predefined macros.
      	* include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
      	(time_point, system_clock, high_resolution_clock, steady_clock): Remove
      	dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
      	(nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
      	[!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
      	long long when <stdint.h> is not usable.
      	* include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(condition_variable, condition_variable_any): Remove dependency on
      	_GLIBCXX_USE_C99_STDINT_TR1.
      	* include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
      	(packaged_task, async): Likewise.
      	* include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
      	(timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
      	(once_flag, call_once): Likewise.
      	* include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
      	* include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
      	(shared_mutex, shared_timed_mutex, shared_lock): Likewise.
      	* include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
      	(this_thread::get_id, this_thread::yield, this_thread::sleep_for)
      	(this_thread::sleep_until): Likewise.
      	* src/c++11/chrono.cc: Remove dependency on
      	_GLIBCXX_USE_C99_STDINT_TR1 macro.
      	* src/c++11/condition_variable.cc: Likewise.
      	* src/c++11/futex.cc: Likewise.
      	* src/c++11/future.cc: Likewise.
      	* src/c++11/mutex.cc: Likewise.
      	* src/c++11/thread.cc: Likewise.
      	* testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
      	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
      	* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
      	* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
      
      From-SVN: r263001
      Jonathan Wakely committed
    • xfail experimental/memory_resource/new_delete_resource.cc on 32-bit Solaris/x86… · 864f020a
      xfail experimental/memory_resource/new_delete_resource.cc on 32-bit Solaris/x86 (PR libstdc++/77691)
      
      	PR libstdc++/77691
      	* testsuite/experimental/memory_resource/new_delete_resource.cc:
      	xfail execution on 32-bit Solaris/x86.
      
      From-SVN: r263000
      Rainer Orth committed
    • Add linker_output as prefix for LTO temps (PR lto/86548). · c00c9d03
      2018-07-26  Martin Liska  <mliska@suse.cz>
      
              PR lto/86548
      	* lto-wrapper.c: Add linker_output as prefix
              for ltrans_output_file.
      2018-07-26  Martin Liska  <mliska@suse.cz>
      
              PR lto/86548
      	* libiberty.h (make_temp_file_with_prefix): New function.
      2018-07-26  Martin Liska  <mliska@suse.cz>
      
              PR lto/86548
      	* make-temp-file.c (TEMP_FILE): Remove leading 'cc'.
      	(make_temp_file): Call make_temp_file_with_prefix with
              first argument set to NULL.
      	(make_temp_file_with_prefix): Support also prefix.
      
      From-SVN: r262999
      Martin Liska committed
    • optimize std::vector move assignment · e98edc20
      2018-07-26  Marc Glisse  <marc.glisse@inria.fr>
      
      	* include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New.
      	(_Vector_impl_data::_M_swap_data): Use _M_copy_data.
      	(vector::_M_move_assign): Reorder the swaps.
      
      From-SVN: r262998
      Marc Glisse committed
    • [libgomp, nvptx] Add error with recompilation hint for launch failure · 88a4654d
      Currently, when a kernel is lauched with too many workers, it results in a cuda
      launch failure.  This is triggered f.i. for parallel-loop-1.c at -O0 on a Quadro
      M1200.
      
      This patch detects this situation, and errors out with a hint on how to fix it.
      
      Build and reg-tested on x86_64 with nvptx accelerator.
      
      2018-07-26  Cesar Philippidis  <cesar@codesourcery.com>
      	    Tom de Vries  <tdevries@suse.de>
      
      	* plugin/plugin-nvptx.c (nvptx_exec): Error if the hardware doesn't have
      	sufficient resources to launch a kernel, and give a hint on how to fix
      	it.
      
      Co-Authored-By: Tom de Vries <tdevries@suse.de>
      
      From-SVN: r262997
      Cesar Philippidis committed
    • [libgomp, nvptx] Move device property sampling from nvptx_exec to nvptx_open · 0c6c2f5f
      Move sampling of device properties from nvptx_exec to nvptx_open, and assume
      the sampling always succeeds.  This simplifies the default dimension
      initialization code in nvptx_open.
      
      2018-07-26  Cesar Philippidis  <cesar@codesourcery.com>
      	    Tom de Vries  <tdevries@suse.de>
      
      	* plugin/plugin-nvptx.c (struct ptx_device): Add warp_size,
      	max_threads_per_block and max_threads_per_multiprocessor fields.
      	(nvptx_open_device): Initialize new fields.
      	(nvptx_exec): Use num_sms, and new fields.
      
      Co-Authored-By: Tom de Vries <tdevries@suse.de>
      
      From-SVN: r262996
      Cesar Philippidis committed
    • combine: Another hard register problem (PR85805) · 328aa787
      The current code in reg_nonzero_bits_for_combine allows using the
      reg_stat info when last_set_mode is a different integer mode.  This is
      completely wrong for non-pseudos.  For example, as in the PR, a value
      in a DImode hard register is set by eight writes to its constituent
      QImode parts.  The value written to the DImode is not the same as that
      written to the lowest-numbered QImode!
      
      
      	PR rtl-optimization/85805
      	* combine.c (reg_nonzero_bits_for_combine): Only use the last set
      	value for hard registers if that was written in the same mode.
      
      From-SVN: r262994
      Segher Boessenkool committed
    • gcov: Fix wrong usage of NAN in statistics (PR gcov-profile/86536). · 977667e6
      2018-07-26  Martin Liska  <mliska@suse.cz>
      
              PR gcov-profile/86536
      	* gcov.c (format_gcov): Use printf format %.*f directly
              and do not handle special values.
      2018-07-26  Martin Liska  <mliska@suse.cz>
      
              PR gcov-profile/86536
      	* gcc.misc-tests/gcov-pr86536.c: New test.
      
      From-SVN: r262991
      Martin Liska committed
    • [libgomp, openacc, testsuite] Fix async logic in lib-12.f90 · 6dd58010
      In testcase lib-12.f90, all acc_async_test calls are placed in a location
      where they are not guaranteed to succeed, which explains why there's an xfail
      for the lower optimization levels.
      
      This patch fixes the problem by moving the acc_async_test calls to the correct
      locations.
      
      Reg-tested on x86_64 with nvptx accelerator.
      
      2018-07-26  Tom de Vries  <tdevries@suse.de>
      
      	* testsuite/libgomp.oacc-fortran/lib-12.f90: Move acc_async_test calls
      	to correct locations.  Remove xfail.
      
      From-SVN: r262990
      Tom de Vries committed
    • [libgomp, openacc, testsuite] Fix async/wait logic in lib-13.f90 · b2eb1779
      The purpose of the lib-13.f90 test-case is to test acc_wait_all_async.  The
      test indeed calls acc_wait_all_async, but then subsequentlys calls
      acc_wait_all, so the acc_wait_all_async functionality is not tested.
      Furthermore, all acc_async_test calls are placed in a location where they are
      not guaranteed to succeed, which explains why there's an xfail for the lower
      optimization levels.
      
      This patch fixes the problems by replacing acc_wait_all with an acc_wait on
      the async id used for the acc_wait_all_async call, and moving the
      acc_async_test calls to the correct locations.
      
      Reg-tested on x86_64 with nvptx accelerator.
      
      2018-07-26  Tom de Vries  <tdevries@suse.de>
      
      	* testsuite/libgomp.oacc-fortran/lib-13.f90: Replace acc_wait_all with
      	acc_wait.  Move acc_async_test calls to correct locations.  Remove
      	xfail.
      
      From-SVN: r262989
      Tom de Vries committed
    • Daily bump. · a4955142
      From-SVN: r262988
      GCC Administrator committed
  2. 25 Jul, 2018 16 commits
    • PR libstdc++/86676 another alignment fix for test · aea37223
      	PR libstdc++/86676
      	* testsuite/20_util/monotonic_buffer_resource/release.cc: Request
      	same alignment for post-release allocation.
      
      From-SVN: r262984
      Jonathan Wakely committed
    • * es.po, ja.po, sv.po: Update. · 22f31945
      From-SVN: r262982
      Joseph Myers committed
    • strnlen.c: Remove DejaGnu directives ignored by the test harness. · 4b1f17eb
      gcc/testsuite/ChangeLog:
      
      	* gcc.c-torture/execute/builtins/strnlen.c: Remove DejaGnu directives
      	ignored by the test harness.
      
      From-SVN: r262981
      Martin Sebor committed
    • PR libstdc++/86676 Do not assume stack buffer is aligned · 17a63212
      	PR libstdc++/86676
      	* testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for
      	buffer being misaligned and so returned pointer not being at start.
      
      From-SVN: r262980
      Jonathan Wakely committed
    • re PR fortran/25829 ([F03] Asynchronous IO support) · 0fc1c429
      2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* testsuite/libgomp.fortran/async_io_1.f90: Really commit.
      	* testsuite/libgomp.fortran/async_io_2.f90: Really commit.
      	* testsuite/libgomp.fortran/async_io_3.f90: Really commit.
      	* testsuite/libgomp.fortran/async_io_4.f90: Really commit.
      	* testsuite/libgomp.fortran/async_io_5.f90: Really commit.
      	* testsuite/libgomp.fortran/async_io_6.f90: Really commit.
      	* testsuite/libgomp.fortran/async_io_7.f90: Really commit.
      
      From-SVN: r262979
      Nicolas Koenig committed
    • re PR fortran/25829 ([F03] Asynchronous IO support) · b1f45884
      2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* gfortran.texi: Add description of asynchronous I/O.
      	* trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
      	as volatile.
      	* trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
      	st_wait_async and change argument spec from ".X" to ".w".
      	(gfc_trans_wait): Pass ID argument via reference.
      
      2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* gfortran.dg/f2003_inquire_1.f03: Add write statement.
      	* gfortran.dg/f2003_io_1.f03: Add wait statement.
      
      2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* Makefile.am: Add async.c to gfor_io_src.
      	Add async.h to gfor_io_headers.
      	* Makefile.in: Regenerated.
      	* gfortran.map: Add _gfortran_st_wait_async.
      	* io/async.c: New file.
      	* io/async.h: New file.
      	* io/close.c: Include async.h.
      	(st_close): Call async_wait for an asynchronous unit.
      	* io/file_pos.c (st_backspace): Likewise.
      	(st_endfile): Likewise.
      	(st_rewind): Likewise.
      	(st_flush): Likewise.
      	* io/inquire.c: Add handling for asynchronous PENDING
      	and ID arguments.
      	* io/io.h (st_parameter_dt): Add async bit.
      	(st_parameter_wait): Correct.
      	(gfc_unit): Add au pointer.
      	(st_wait_async): Add prototype.
      	(transfer_array_inner): Likewise.
      	(st_write_done_worker): Likewise.
      	* io/open.c: Include async.h.
      	(new_unit): Initialize asynchronous unit.
      	* io/transfer.c (async_opt): New struct.
      	(wrap_scalar_transfer): New function.
      	(transfer_integer): Call wrap_scalar_transfer to do the work.
      	(transfer_real): Likewise.
      	(transfer_real_write): Likewise.
      	(transfer_character): Likewise.
      	(transfer_character_wide): Likewise.
      	(transfer_complex): Likewise.
      	(transfer_array_inner): New function.
      	(transfer_array): Call transfer_array_inner.
      	(transfer_derived): Call wrap_scalar_transfer.
      	(data_transfer_init): Check for asynchronous I/O.
      	Perform a wait operation on any pending asynchronous I/O
      	if the data transfer is synchronous. Copy PDT and enqueue
      	thread for data transfer.
      	(st_read_done_worker): New function.
      	(st_read_done): Enqueue transfer or call st_read_done_worker.
      	(st_write_done_worker): New function.
      	(st_write_done): Enqueue transfer or call st_read_done_worker.
      	(st_wait): Document as no-op for compatibility reasons.
      	(st_wait_async): New function.
      	* io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK;
      	add NOTE where necessary.
      	(get_gfc_unit): Likewise.
      	(init_units): Likewise.
      	(close_unit_1): Likewise. Call async_close if asynchronous.
      	(close_unit): Use macros LOCK and UNLOCK.
      	(finish_last_advance_record): Likewise.
      	(newunit_alloc): Likewise.
      	* io/unix.c (find_file): Likewise.
      	(flush_all_units_1): Likewise.
      	(flush_all_units): Likewise.
      	* libgfortran.h (generate_error_common): Add prototype.
      	* runtime/error.c: Include io.h and async.h.
      	(generate_error_common): New function.
      
      2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* testsuite/libgomp.fortran/async_io_1.f90: New test.
      	* testsuite/libgomp.fortran/async_io_2.f90: New test.
      	* testsuite/libgomp.fortran/async_io_3.f90: New test.
      	* testsuite/libgomp.fortran/async_io_4.f90: New test.
      	* testsuite/libgomp.fortran/async_io_5.f90: New test.
      	* testsuite/libgomp.fortran/async_io_6.f90: New test.
      	* testsuite/libgomp.fortran/async_io_7.f90: New test.
      
      
      Co-Authored-By: Thomas Koenig <tkoenig@gcc.gnu.org>
      
      From-SVN: r262978
      Nicolas Koenig committed
    • Add missing header for std::max_align_t · 16d0ab7f
      	* include/experimental/memory_resource: Include <cstddef> header.
      
      From-SVN: r262977
      Jonathan Wakely committed
    • cp-tree.h (enum cp_tree_index): Add… · cf7fb52d
      cp-tree.h (enum cp_tree_index): Add CPTI_{ABI_TAG,ALIGNED,BEGIN,END,GET,TUPLE_{ELEMENT,SIZE}}_IDENTIFIER and...
      
      	* cp-tree.h (enum cp_tree_index): Add
      	CPTI_{ABI_TAG,ALIGNED,BEGIN,END,GET,TUPLE_{ELEMENT,SIZE}}_IDENTIFIER
      	and CPTI_{GNU,TYPE,VALUE,FUN,CLOSURE}_IDENTIFIER.
      	(abi_tag_identifier, aligned_identifier, begin_identifier,
      	end_identifier, get__identifier, gnu_identifier,
      	tuple_element_identifier, tuple_size_identifier, type_identifier,
      	value_identifier, fun_identifier, closure_identifier): Define.
      	* decl.c (initialize_predefined_identifiers): Initialize the above
      	identifiers.
      	(get_tuple_size): Use tuple_size_identifier instead of
      	get_identifier ("tuple_size") and value_identifier instead of
      	get_identifier ("value").
      	(get_tuple_element_type): Use tuple_element_identifier instead of
      	get_identifier ("tuple_element") and type_identifier instead of
      	get_identifier ("type").
      	(get_tuple_decomp_init): Use get__identifier instead of
      	get_identifier ("get").
      	* lambda.c (maybe_add_lambda_conv_op): Use fun_identifier instead of
      	get_identifier ("_FUN").
      	* parser.c (cp_parser_lambda_declarator_opt): Use closure_identifier
      	instead of get_identifier ("__closure").
      	(cp_parser_std_attribute): Use gnu_identifier instead of
      	get_identifier ("gnu").
      	(cp_parser_std_attribute_spec): Likewise.  Use aligned_identifier
      	instead of get_identifier ("aligned").
      	* class.c (check_abi_tags, inherit_targ_abi_tags): Use
      	abi_tag_identifier instead of get_identifier ("abi_tag").
      
      From-SVN: r262976
      Jakub Jelinek committed
    • re PR c++/85515 (Bogus suggestions from "GCC's leaky abstractions") · 213f5e8a
      	PR c++/85515
      	* cp-tree.h (enum cp_tree_index): Add
      	CPTI_FOR_{RANGE,BEGIN,END}{,_}_IDENTIFIER.
      	(for_range__identifier, for_begin__identifier, for_end__identifier,
      	for_range_identifier, for_begin_identifier, for_end_identifier):
      	Define.
      	* decl.c (initialize_predefined_identifiers): Initialize
      	for_{range,begin,end}{,_}_identifier.
      	* parser.c (build_range_temp): Use for_range__identifier instead of
      	get_identifier ("__for_range").
      	(cp_convert_range_for): Use for_begin__identifier and
      	for_end__identifier instead of get_identifier ("__for_begin") and
      	get_identifier ("__for_end").
      	* semantics.c (finish_for_stmt): Rename "__for_{range,begin,end} "
      	local symbols to "__for_{range,begin,end}".
      
      	* g++.dg/pr85515-2.C: Add expected dg-error.
      	* g++.dg/cpp0x/range-for36.C: New test.
      
      From-SVN: r262975
      Jakub Jelinek committed
    • [ARC] Update default optimizations for size. · c44fa4a6
      Update the list of default optimizations used for size compilations.
      
      gcc/
      2018-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* common/config/arc/arc-common.c (arc_option_optimization_table):
      	Update default optimizations for size.
      
      From-SVN: r262973
      Claudiu Zissulescu committed
    • Regenerate .pot files. · 44f916dc
      gcc/po:
      	* gcc.pot: Regenerate.
      
      libcpp/po:
      	* cpplib.pot: Regenerate.
      
      From-SVN: r262972
      Joseph Myers committed
    • [ARC] Improve instruction selection for fp moves. · a9637757
      Improve selection of short instruction for fp-moves.
      
      gcc/
      2018-05-17  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.md (movsf_insn): Add short instruction selection.
      	* config/arc/constraints.md (CfZ): New constraint.
      	* config/arc/fpu.md (addssf3_fpu): Use CfZ constraint.
      	(subsf3_fpu): Likewise.
      	(cmpsf_fpu): Likewise.
      	(cmpsf_fpu_uneq): Likewise.
      
      From-SVN: r262971
      Claudiu Zissulescu committed
    • [ARC] Fix uncache attribute. · 3e4a5f54
      gcc/
      2018-05-09  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (compact_memory_operand_p): Check for uncached
      	accesses as well.
      	(arc_is_uncached_mem_p): uncached applies to both the variable and
      	the pointer.
      
      testsuite/
      2018-05-09  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* gcc.target/arc/uncached-1.c: New test.
      	* gcc.target/arc/uncached-2.c: Likewise.
      
      From-SVN: r262970
      Claudiu Zissulescu committed
    • [ARC] Add more additional register names · 8f176ba2
      gcc/
        Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add additional
      	register names.
      
      From-SVN: r262969
      Claudiu Zissulescu committed
    • optinfo-emit-json.cc: fix trivial memory leak · ee50ba77
      gcc/ChangeLog:
      	* optinfo-emit-json.cc (class optrecord_json_writer): Convert
      	field "m_scopes" from vec to auto_vec.
      
      From-SVN: r262967
      David Malcolm committed
    • Fix wrong declaration. · e8e3751c
      2018-07-25  Martin Liska  <mliska@suse.cz>
      
      	* config/powerpcspe/powerpcspe-protos.h (rs6000_loop_align): Fix
              return type.
      
      From-SVN: r262966
      Martin Liska committed