1. 10 Jan, 2017 4 commits
    • Adjust effective target selector to fix C++17 FAIL · 904112f6
      	* testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
      	effective target selector to prevent running in C++17 mode.
      
      From-SVN: r244280
      Jonathan Wakely committed
    • PR77528 add default constructors for container adaptors · d2e1d4b7
      	PR libstdc++/77528
      	* include/bits/stl_queue.h (queue::c): Add default member initializer.
      	(queue::queue()): Add constructor and define as defaulted.
      	(queue::queue(_Sequence&&)): Remove default argument.
      	(priority_queue::c, priority_queue::comp): Add default member
      	initializers.
      	(priority_queue::priority_queue()): Add constructor and define as
      	defaulted.
      	(priority_queue::priority_queue(const _Compare&, _Sequence&&)):
      	Remove default argument for first parameter.
      	* include/bits/stl_stack.h (stack::c): Add default member initializer.
      	(stack::stack()): Add constructor and define as defaulted.
      	(stack::stack(const _Sequence&)): Remove default argument.
      	* testsuite/23_containers/priority_queue/requirements/
      	explicit_instantiation/1.cc: Test explicit instantiation with
      	non-DefaultConstructible sequence.
      	* testsuite/23_containers/priority_queue/77528.cc: New test.
      	* testsuite/23_containers/priority_queue/requirements/
      	explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
      	* testsuite/23_containers/queue/77528.cc: New test.
      	* testsuite/23_containers/queue/requirements/explicit_instantiation/
      	1.cc: Test explicit instantiation with non-DefaultConstructible
      	sequence.
      	* testsuite/23_containers/queue/requirements/explicit_instantiation/
      	1_c++0x.cc: Replace with 1_c++98.cc.
      	* testsuite/23_containers/stack/77528.cc: New test.
      	* testsuite/23_containers/stack/requirements/explicit_instantiation/
      	1.cc: Test explicit instantiation with non-DefaultConstructible
      	sequence.
      	* testsuite/23_containers/stack/requirements/explicit_instantiation/
      	1_c++0x.cc: Replace with 1_c++98.cc.
      
      From-SVN: r244278
      Jonathan Wakely committed
    • Use temporary int objects to access struct tm members · 26b67e38
      Call _M_extract_* functions family through temporary int objects, so
      it doesn't convert from lvalue to rvalue through a temporary in AVR
      because of the incompatible types used in AVR-Libc.
      
      This fixes compilation errors with AVR-Libc while compiling libstdc++
      for AVR target.
      
      2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
      
      	* include/bits/locale_facets_nonio.tcc
      	(time_get::_M_extract_via_format): Avoid compilation errors with
      	non-standard struct tm.
      
      From-SVN: r244271
      Felipe Magno de Almeida committed
    • Make Python printers and xmethods work with versioned namespace · f9a27859
      2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
      	    Jonathan Wakely  <jwakely@redhat.com>
      
      	* python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
      	(is_specialization, strip_versioned_namespace): New helpers functions
      	to work with symbols in the versioned namespace.
      	(Printer.add_version): Add second name using versioned namespace.
      	(add_one_template_type_printer, add_one_type_printer): Add second
      	type printers using versioned namespace.
      	(register_type_printers): Add template type printer for basic_string.
      	(build_libstdcxx_dictionary): Remove dead code.
      	* python/libstdcxx/v6/xmethods.py: Make all matchers look for
      	versioned namespace.
      	* testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
      	results.
      	* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
      
      Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
      
      From-SVN: r244262
      François Dumont committed
  2. 09 Jan, 2017 3 commits
  3. 06 Jan, 2017 7 commits
  4. 05 Jan, 2017 2 commits
  5. 04 Jan, 2017 4 commits
    • PR78968 add configure check for __cxa_thread_atexit in libc · 2a792efe
      	PR libstdc++/78968
      	* config.h.in: Regenerate.
      	* configure: Likewise.
      	* configure.ac: Check for __cxa_thread_atexit.
      	* libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
      	Don't define __cxa_thread_atexit if libc provides it.
      
      From-SVN: r244057
      Jonathan Wakely committed
    • Implement 2801, Default-constructibility of unique_ptr. · 13086769
      * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
      (unique_ptr::_DeleterConstraint): Likewise.
      (unique_ptr()): Constrain.
      (unique_ptr(pointer)): Likewise.
      (unique_ptr(nullptr_t)): Likewise.
      (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
      (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
      (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
      (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
      * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
      * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
      * testsuite/20_util/unique_ptr/cons/default.cc: New.
      * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
      
      From-SVN: r244054
      Ville Voutilainen committed
    • Support exception propagation without lock-free atomic int · ed3cb497
      2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
      	    Jonathan Wakely  <jwakely@redhat.com>
      
      	PR libstdc++/64735
      	* acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
      	* config.h.in: Regenerate.
      	* config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
      	(GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
      	exports for exception_ptr, nested_exception, and future conditional.
      	[HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
      	exports for exception_ptr, nested_exception, and future conditional.
      	* configure: Regenerate.
      	* configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
      	* include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
      	* libsupc++/eh_atomics.h: New file for internal use only.
      	(__eh_atomic_inc, __eh_atomic_dec): New.
      	* libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
      	(exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
      	(rethrow_exception): Use eh_atomics.h reference counting helpers.
      	* libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
      	* libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
      	* libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
      	* libsupc++/exception_ptr.h: Likewise.
      	* libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
      	* libsupc++/nested_exception.cc: Remove check for
      	ATOMIC_INT_LOCK_FREE.
      	* libsupc++/nested_exception.h: Likewise.
      	* src/c++11/future.cc: Likewise.
      	* testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
      	* testsuite/18_support/nested_exception/*: Likewise.
      	* testsuite/30_threads/async/*: Likewise.
      	* testsuite/30_threads/future/*: Likewise.
      	* testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
      	* testsuite/30_threads/packaged_task/*: Likewise.
      	* testsuite/30_threads/promise/*: Likewise.
      	* testsuite/30_threads/shared_future/*: Likewise.
      
      Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
      
      From-SVN: r244051
      Pauli Nieminen committed
    • documentation_hacking.xml: sourceforge.net now defaults to https; adjust reference. · c671a0d6
              * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
              defaults to https; adjust reference.
      
      From-SVN: r244043
      Gerald Pfeifer committed
  6. 03 Jan, 2017 2 commits
  7. 02 Jan, 2017 1 commit
  8. 01 Jan, 2017 1 commit
  9. 29 Dec, 2016 1 commit
    • Implement LWG 2842, in_place_t check for optional::optional(U&&) should decay U. · 2ae2d394
      Implement LWG 2842, in_place_t check for optional::optional(U&&)
      should decay U.
      * include/std/optional (_Optional_base(in_place_t, _Args&&...)):
      Constrain.
      (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
      Turn the int-pack constraint hack into a saner bool.
      (_Optional_base<_Tp, false>::_Optional_base(in_place_t, _Args&&...)):
      Constrain.
      (_Optional_base<_Tp, false>::_Optional_base(in_place_t,
      initializer_list<_Up>, _Args&&...)):
      Turn the int-pack constraint hack into a saner bool.
      (optional(_Up&&)): Constrain against in_place_t.
      (optional(in_place_t, _Args&&...)): Constrain.
      (constexpr optional(in_place_t, initializer_list<_Up>, _Args&&...)):
      Turn the int-pack constraint hack into a saner bool.
      * testsuite/20_util/optional/cons/value_neg.cc: Add a test for
      a type that is constructible from in_place.
      
      From-SVN: r243966
      Ville Voutilainen committed
  10. 24 Dec, 2016 1 commit
  11. 21 Dec, 2016 3 commits
    • Implement P0522R0, matching of template template arguments. · 31bfc9b9
      gcc/c-family/
      	* c.opt (-fnew-ttp-matching): New flag.
      	* c-opts.c (c_common_post_options): Default on if -std=c++1z.
      gcc/cp/
      	* pt.c (coerce_template_template_parms): Allow a template argument
      	that's less specialized than the parameter.
      	(unify_bound_ttp_args): Adjust parm's args to apply to arg's
      	template.
      	(coerce_template_args_for_ttp): Split out from
      	lookup_template_class_1.
      	(coerce_ttp_args_for_tta, store_defaulted_ttp)
      	(lookup_defaulted_ttp, add_defaults_to_ttp): New.
      	(process_partial_specialization): Set DECL_CONTEXT of
      	template template-parameters.
      	(coerce_template_parms): Only inform when complain.
      	(expand_template_argument_pack): Handle error_mark_node.
      	(convert_template_argument, template_args_equal, unify): Handle
      	any_targ_node.
      	* cp-tree.h (enum cp_tree_index): Add CPTI_ANY_TARG.
      	(any_targ_node): New.
      	* decl.c (cxx_init_decl_processing): Set it.
      	* name-lookup.c (consider_binding_level): Ignore names with embedded
      	spaces.
      
      From-SVN: r243871
      Jason Merrill committed
    • Fix handling of explicit function template arguments with TTPs. · 57a6add2
      gcc/cp/
      	* pt.c (coerce_template_parms): Consider variadic_args_p before
      	complaining about too many template arguments.
      libstdc++-v3/
      	* testsuite/util/testsuite_tr1.h (test_property): Don't define both
      	variadic and non-variadic overloads.
      
      From-SVN: r243869
      Jason Merrill committed
    • PR 71444 define more error constants for mingw-w64 · e76d3098
      	PR libstdc++/71444
      	* config/os/mingw32-w64/error_constants.h
      	(address_family_not_supported, address_in_use, address_not_available)
      	(already_connected, connection_aborted, connection_already_in_progress)
      	connection_refused, connection_reset, cross_device_link)
      	(destination_address_required, host_unreachable, message_size)
      	(network_down, network_reset, network_unreachable, no_buffer_space)
      	(no_protocol_option, not_a_socket, not_connected, operation_canceled)
      	(operation_in_progress, operation_not_supported, protocol_error)
      	(protocol_not_supported, too_many_links, too_many_symbolic_link_levels)
      	(value_too_large, wrong_protocol_type): Define.
      	(bad_message, identifier_removed, no_link, no_message_available)
      	(no_message, no_stream_resources, not_a_stream, owner_dead)
      	(state_not_recoverable, stream_timeout, text_file_busy): Define
      	conditionally.
      	* testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc:
      	Guard test for no_message with _GLIBCXX_HAVE_ENOMSG.
      
      From-SVN: r243853
      Jonathan Wakely committed
  12. 19 Dec, 2016 1 commit
  13. 16 Dec, 2016 3 commits
  14. 15 Dec, 2016 4 commits
    • PR59170 make pretty printers check for singular iterators · bdfc9f5c
      	PR libstdc++/59170
      	* python/libstdcxx/v6/printers.py (StdListIteratorPrinter.to_string)
      	(StdSlistIteratorPrinter.to_string, StdVectorIteratorPrinter.to_string)
      	(StdRbtreeIteratorPrinter.to_string)
      	(StdDequeIteratorPrinter.to_string): Add check for value-initialized
      	iterators.
      	* testsuite/libstdc++-prettyprinters/simple.cc: Test them.
      	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
      
      From-SVN: r243692
      Jonathan Wakely committed
    • PR59161 make pretty printers always return strings · 50a8a941
      	PR libstdc++/59161
      	* python/libstdcxx/v6/printers.py (StdListIteratorPrinter.to_string)
      	(StdSlistIteratorPrinter.to_string, StdVectorIteratorPrinter.to_string)
      	(StdRbtreeIteratorPrinter.to_string, StdDequeIteratorPrinter.to_string)
      	(StdDebugIteratorPrinter.to_string): Return string instead of
      	gdb.Value.
      	* testsuite/libstdc++-prettyprinters/59161.cc: New test.
      
      From-SVN: r243690
      Jonathan Wakely committed
    • Tweak formatting and docs for pretty printers · 7224c6a9
      	* python/libstdcxx/v6/printers.py (UniquePointerPrinter.to_string):
      	Remove redundant parentheses.
      	(RbtreeIterator, StdRbtreeIteratorPrinter): Add docstrings.
      	(StdForwardListPrinter.to_string): Remove redundant parentheses.
      	(StdExpOptionalPrinter.to_string): Use string formatting instead of
      	concatenation.
      	(StdVariantPrinter.to_string, StdNodeHandlePrinter.to_string)
      	(TemplateTypePrinter): Adjust whitespace.
      
      From-SVN: r243689
      Jonathan Wakely committed
    • Add GDB XMethods for shared_ptr and unique_ptr<T[]> · 0376e86b
      	* python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker.__init__): Use
      	correct element type for unique_ptr<T[]>.
      	(UniquePtrGetWorker._supports, UniquePtrDerefWorker._supports): New
      	functions to disable unsupported operators for unique_ptr<T[]>.
      	(UniquePtrSubscriptWorker): New worker for operator[].
      	(UniquePtrMethodsMatcher.__init__): Register UniquePtrSubscriptWorker.
      	(UniquePtrMethodsMatcher.match): Call _supports on the chosen worker.
      	(SharedPtrGetWorker, SharedPtrDerefWorker, SharedPtrSubscriptWorker)
      	(SharedPtrUseCountWorker, SharedPtrUniqueWorker): New workers.
      	(SharedPtrMethodsMatcher): New matcher for shared_ptr.
      	(register_libstdcxx_xmethods): Register SharedPtrMethodsMatcher.
      	* testsuite/libstdc++-xmethods/unique_ptr.cc: Test arrays.
      	* testsuite/libstdc++-xmethods/shared_ptr.cc: New test.
      
      From-SVN: r243688
      Jonathan Wakely committed
  15. 14 Dec, 2016 3 commits
    • stl_tree.h (_Rb_tree_impl(const _Key_compare&, const _Node_allocator&): Restore before C++11 mode. · b9588893
      2016-12-14  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_tree.h
      	(_Rb_tree_impl(const _Key_compare&, const _Node_allocator&): Restore
      	before C++11 mode.
      
      From-SVN: r243670
      François Dumont committed
    • Make printers use singular noun for a single element · d33c00e1
      	* python/libstdcxx/v6/printers.py (num_elements): New function.
      	(StdMapPrinter.to_string, StdSetPrinter.to_string)
      	(StdDequePrinter.to_string, Tr1UnorderedSetPrinter.to_string)
      	(Tr1UnorderedMapPrinter.to_string): Use num_elements.
      	* testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected results
      	to use singular noun when there is only one element.
      	* testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/tr1.cc: Likewise.
      
      From-SVN: r243652
      Jonathan Wakely committed
    • Make printers detect invalid debug mode iterators · 3c760f4a
      	PR libstdc++/59170
      	* python/libstdcxx/v6/printers.py (StdDebugIteratorPrinter): Use
      	_M_sequence and _M_version to detect invalid iterators.
      	* testsuite/libstdc++-prettyprinters/debug.cc: Test debug mode vector
      	and test invalid iterators.
      	* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: New test.
      
      From-SVN: r243650
      Jonathan Wakely committed