Commit Graph

8097 Commits

Author SHA1 Message Date
Tim Shen
caaf33fa57 regex_executor.tcc: Add comments.
2013-10-28  Tim Shen  <timshen91@gmail.com>

	* regex_executor.tcc: Add comments.

From-SVN: r204117
2013-10-28 03:55:12 +00:00
Tim Shen
9f0d9611e7 regex.h: Remove unnecessary friends.
2013-10-26  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex.h: Remove unnecessary friends.
	* include/bits/regex.tcc (__regex_algo_impl<>): Move __get_executor
	to here.
	* include/bits/regex_executor.h: Remove _DFSExecutor and _BFSExecutor;
	they are merged into _Executor. Eliminate quantifier tracking part, so
	it's faster.
	* include/bits/regex_executor.tcc: Implement _Executor.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/ungreedy.cc: New.
	* testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc: Adjust
	duplicate testcases.
	* testsuite/performance/28_regex/split.h: New.
	* testsuite/performance/28_regex/split_bfs.cc: New.
	* testsuite/util/testsuite_regex.h: Adjust behavior of two-executors
	agreement judger: do not compare match_results when executor return
	false.

From-SVN: r204093
2013-10-26 16:09:28 +00:00
François Dumont
3ff4317f1c formatter.h (__check_singular): Add const on iterator reference.
2013-10-25  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/formatter.h (__check_singular): Add const on
	iterator reference.
	* include/debug/functions.h (__check_singular): Likewise.
	(__check_singular(const _Safe_iterator<_Ite, _Seq>&)): Delete.
	(__check_dereferenceable(const _Ite&)): Add const on iterator
	reference.
	(__check_dereferenceable(const _Safe_local_iterator<>&)): New.
	* include/debug/safe_iterator.h (__check_singular_aux): Review
	comment.
	* testsuite/23_containers/vector/debug/debug_functions.cc: New.
	* testsuite/23_containers/unordered_set/debug/debug_functions.cc:
	New.

From-SVN: r204075
2013-10-25 19:25:06 +00:00
Chris Jefferson
c2240038a6 testsuite_containergen.h: New.
2013-10-23  Chris Jefferson  <chris@bubblescope.net>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/util/testsuite_containergen.h: New.
	* testsuite/util/testsuite_iterators.h (test_container<>::val): Add.
	* testsuite/25_algorithms/nth_element/random_test.cc: New, use the
	above.
	* testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
	* testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
	* testsuite/25_algorithms/sort/random_test.cc: Likewise.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>

From-SVN: r203995
2013-10-23 22:19:30 +00:00
Gerald Pfeifer
ecdbd01aa1 Fix up ChangeLog entries (name, e-mail, formatting, otherwise).
From-SVN: r203992
2013-10-23 21:30:54 +00:00
Jason Merrill
d4c579b561 * include/bits/hashtable.h (_Hashtable): Force EBO for _Hash_code_base.
From-SVN: r203984
2013-10-23 14:08:46 -04:00
Paolo Carlini
66caf47a50 re PR libstdc++/58850 (Conversion error in chrono)
2013-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/58850
	* include/std/chrono (minutes, hours): Change typedefs to uniformly
	use int64_t.
	* testsuite/20_util/duration/arithmetic/58850.cc: New.

From-SVN: r203978
2013-10-23 15:31:26 +00:00
Paolo Carlini
f361277750 contrib.texi ([Fran@,{c}ois Dumont], [...]): New entries.
2013-10-22  Paolo Carlini  <paolo.carlini@oracle.com>

	* doc/contrib.texi ([Fran@,{c}ois Dumont], [Tim Shen],
	[Ed Smith-Rowland]): New entries.
	([Stephen M. Webb]): Update.

From-SVN: r203959
2013-10-23 11:59:07 +00:00
Paolo Carlini
1a0e9d1cb9 re PR libstdc++/58815 (Casting/Conversion operator for std::decimal not supported)
2013-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/58815
	* include/decimal/decimal (decimal32::operator long long(),
	decimal64::operator long long(), decimal128::operator long long()):
	Add in c++11 mode per n3407.
	* testsuite/decimal/pr58815.cc: New.

From-SVN: r203956
2013-10-23 11:48:26 +00:00
Edward Smith-Rowland
e9a6449215 basic_string.h (operator""s): Remove space between quotes and literal identifier.
2013-10-22  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* include/bits/basic_string.h (operator""s): Remove space between quotes
	and literal identifier.
	* include/std/chrono (operator""h, operator""min, operator""s,
	operator""ms, operator""us, operator""ns): Ditto.

From-SVN: r203941
2013-10-23 00:12:36 +00:00
Ed Smith-Rowland
ae5543e662 Implement N3779 - User-defined Literals for std::complex, part 2 of UDL for Standard Library Types
2013-09-27  Ed Smith-Rowland  <3dw4rd@verizon.net>

	Implement N3779 - User-defined Literals for std::complex,
	part 2 of UDL for Standard Library Types
	* include/std/complex: Add complex literal operators.
	* testsuite/26_numerics/complex/literals/types.cc: New.
	* testsuite/26_numerics/complex/literals/values.cc: New.

From-SVN: r203940
2013-10-23 00:09:19 +00:00
Edward Smith-Rowland
390dafb79d re PR libstdc++/58804 (dynamic_bitset<> uses popcountl on long long)
2013-10-20  Edward Smith-Rowland  <3dw4rd@verizon.net>

	PR libstdc++/58804
	PR libstdc++/58729
	* include/tr2/dynamic_bitset
	(__dynamic_bitset_base<_WordT, _Alloc>::_M_are_all_aux,
	__dynamic_bitset_base<_WordT, _Alloc>::_M_do_count):
	Use __builtin_popcountll() instead of __builtin_popcountl().
	* include/tr2/dynamic_bitset.tcc
	(__dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_first,
	__dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_next):
	Use __builtin_ctzll() instead of __builtin_ctzl().

From-SVN: r203893
2013-10-21 13:52:39 +00:00
Tim Shen
603b781be4 regex.h: Remove virtual class _Automaton.
2013-10-20  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex.h: Remove virtual class _Automaton.
	* include/bits/regex_automaton.h: Likewise.
	* include/bits/regex.tcc: Adjust comment for policy changing.
	* include/bits/regex_executor.h: Update comments of complexity.
	* include/bits/regex_executor.tcc: Adjust executor choosing
	policy. Now DFS executor is the default one.
	* testsuite/util/testsuite_regex.h (regex_match_debug,
	regex_search_debug): Adjust for policy changing.

From-SVN: r203875
2013-10-20 10:07:29 +00:00
Chris Jefferson
f5b9d5e877 re PR libstdc++/58800 (std::nth_element segfaults on valid input)
2013-10-20  Chris Jefferson  <chris@bubblescope.net>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/58800
	* include/bits/stl_algo.h (__unguarded_partition_pivot): Change
	__last - 2 to __last - 1.
	* testsuite/25_algorithms/nth_element/58800.cc: New

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>

From-SVN: r203872
2013-10-20 09:07:36 +00:00
Edward Smith-Rowland
6b8fe121af re PR libstdc++/58729 (tr2::dynamic_bitset::resize fails)
2013-10-18  Edward Smith-Rowland  <3dw4rd@verizon.net>

	PR libstdc++/58729
	* include/tr2/dynamic_bitset (_M_resize, resize): Use input value
	to set bits; (_M_do_left_shift, _M_do_right_shift, _M_do_to_ulong,
	_M_do_to_ullong, _M_do_find_first, _M_do_find_next, _M_copy_from_ptr,
	operator>>): Move long methods outline to...
	* include/tr2/dynamic_bitset.tcc: New.
	* include/Makefile.am: Add dynamic_bitset.tcc.
	* include/Makefile.in: Add dynamic_bitset.tcc.
	* testsuite/tr2/dynamic_bitset/pr58729.cc: New.

From-SVN: r203841
2013-10-19 01:31:19 +00:00
Tim Shen
7948838864 regex_scanner.tcc: (_Scanner<>::_M_scan_normal...
2013-10-18  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex_scanner.tcc: (_Scanner<>::_M_scan_normal,
	_Scanner<>::_M_eat_escape_ecma, _Scanner<>::_M_eat_escape_posix,
	_Scanner<>::_M_eat_escape_awk): Narrow character before finding in maps.
	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc:
	New.

From-SVN: r203827
2013-10-18 16:13:07 +00:00
Tim Shen
ab1c993b94 regex.h (regex_token_iterator<>::regex_token_iterator): Fix initialization orders in initialization list and add explicit braces for...
2013-10-17  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex.h (regex_token_iterator<>::regex_token_iterator):
	Fix initialization orders in initialization list and add explicit braces
	for potentially ambiguous(actually not) `else` branch to eliminate
	warnings.
	* include/bits/regex_automaton.h (_NFA<>::_NFA): Likewise.
	* include/bits/regex_compiler.h (_CharMatcher<>::_CharMatcher,
	_BracketMatcher<>::_BracketMatcher): Likewise.
	* include/bits/regex_compiler.tcc (_Compiler<>::_Compiler,
	_Compiler<>::_M_atom): Likewise.
	* include/bits/regex_executor.h (_Executor<>::_Executor): Likewise.
	* include/bits/regex_executor.tcc (_DFSExecutor<>::_M_dfs,
	_Executor<>::_M_word_boundry): Likewise.
	* include/bits/regex_scanner.tcc (_Scanner<>::_Scanner,
	_Scanner<>::_M_eat_class): Likewise.
	* include/bits/regex.tcc (__regex_algo_impl<>,
	regex_iterator<>::operator++): Likewise, and remove unused typedef.

From-SVN: r203798
2013-10-17 20:46:50 +00:00
Tim Shen
703344ca91 regex.h (regex_token_iterator<>::regex_token_iterator): Add initialization for _M_has_m1.
2013-10-16  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex.h (regex_token_iterator<>::regex_token_iterator):
	Add initialization for _M_has_m1.
	* include/bits/regex.tcc (regex_token_iterator<>::operator=): Add return
	statment.

From-SVN: r203732
2013-10-16 22:28:28 +00:00
Diego Novillo
37ea0d87a3 Add missing function in 20_util/exchange/1.cc.
When this test is compiled at -O0, the compiler does not remove the
address comparison. This causes a link failure, since the body of f()
is missing.

	* testsuite/20_util/exchange/1.cc: Add missing function
	bodies.

From-SVN: r203629
2013-10-15 14:51:37 -04:00
Tim Shen
96937d47ac re PR libstdc++/58737 (leak in std::regex_match)
2013-10-15  Tim Shen  <timshen91@gmail.com>

	PR libstdc++/58737
	* include/bits/regex_automaton.h (_Automaton<>::~_Automaton): Fix memory
	leak by adding it.
	* include/bits/regex_executor.h (_Executor<>::~_Executor): Likewise.

From-SVN: r203610
2013-10-15 15:01:44 +00:00
H.J. Lu
39aeb94e3d Update x32 baseline_symbols.txt
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.

From-SVN: r203456
2013-10-11 11:46:22 -07:00
Marcus Shawcroft
000ebb9242 Adding missing dg-require-atomic-builtins to libstdc++ test case.
From-SVN: r203425
2013-10-11 11:15:01 +00:00
Jonathan Wakely
fd673f296a 58659.cc: Use VERIFY instead of aborting.
* testsuite/20_util/shared_ptr/cons/58659.cc: Use VERIFY instead of
	aborting.

From-SVN: r203325
2013-10-09 19:37:26 +01:00
Marcus Shawcroft
57b4899877 Fix unprototyped abort() introduced in libstdc++/58659.cc testcase.
From-SVN: r203321
2013-10-09 14:26:52 +00:00
Jonathan Wakely
9ae63018d7 * testsuite/*: Remove stray semi-colons after function definitions.
From-SVN: r203279
2013-10-08 14:54:26 +01:00
Jonathan Wakely
61bf02e007 re PR libstdc++/58659 (Construction of shared_ptr from unique_ptr mismatches new/delete and std::allocator for __shared_ptr_count)
PR libstdc++/58659
	* include/bits/shared_ptr_base.h (__shared_count::__shared_count(P,D)):
	Delegate to constructor taking allocator.
	(__shared_count::_S_create_from_up): Inline into ...
	(__shared_count::__shared_count(unique_ptr<Y,D>&&): Here. Use
	std::conditional instead of constrained overloads. Allocate memory
	using the allocator type that will be used for deallocation.
	* testsuite/20_util/shared_ptr/cons/58659.cc: New.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust.

From-SVN: r203274
2013-10-08 13:33:37 +01:00
Tim Shen
18971f1fc3 regex_executor.h: Add _TodoList class.
2013-10-08  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex_executor.h: Add _TodoList class.
	* include/bits/regex_executor.tcc (_BFSExecutor<>::_M_main): Add
	_M_match_stack and _M_stack to make everything faster. Break if
	_M_stack is empty, to reduce unnecessary idling.
	* testsuite/performance/28_regex/split.cc: New.

From-SVN: r203261
2013-10-08 03:41:14 +00:00
Tim Shen
6cb4308702 regex.h: (regex_token_iterator<>::regex_token_iterator): Fix compile error.
2013-10-06  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex.h: (regex_token_iterator<>::regex_token_iterator):
	Fix compile error.
	* include/bits/regex.tcc: (regex_replace<>): Remove default parameter.

2013-10-06  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex.h (__regex_algo_impl<>, regex_match<>,
	regex_search<>): New abstract function for regex_match and regex_search.
	* include/bits/regex.tcc (__regex_algo_impl<>): Implement.
	* include/bits/regex_executor.h
	(_Executor<>::_M_lookahead,
	 _DFSExecutor<>::_M_clone,
	 _BFSExecutor<>::_M_clone): Let _M_clone to choose which executor to
	use.
	* include/bits/regex_executor.tcc (__get_executor<>): Update the
	definition to support __policy.
	* testsuite/28_regex/algorithms/regex_match/awk/cstring_01.cc: Use
	*_debug.
	* testsuite/28_regex/algorithms/regex_match/basic/empty_range.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/basic/string_01.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc:
	Same.
	* testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc:
	Same.
	* testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc:
	Same.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/58576.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/anymatcher.cc:
	Same.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/empty_range.cc:
	Same.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/emptygroup.cc:
	Same.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/hex.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc:
	Same.
	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc:
	Same.
	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_bracket_01.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/extended/cstring_plus.cc:
	Same.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_questionmark.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/extended/cstring_range.cc:
	Same.
	* testsuite/28_regex/algorithms/regex_match/extended/string_any.cc:
	Same.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_dispatch_01.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_range_00_03.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_range_01_03.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_range_02_03.cc: Same.
	* testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
	Same.
	* testsuite/28_regex/algorithms/regex_search/basic/string_01.cc: Same.
	* testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc: Same.
	* testsuite/28_regex/algorithms/regex_search/ecma/flags.cc: Same.
	* testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc: Same.
	* testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc: Same.
	* testsuite/28_regex/match_results/format.cc: Same.
	* testsuite/util/testsuite_regex.h
	(regex_match_debug<>, regex_search_debug<>): Implement.

From-SVN: r203231
2013-10-06 17:53:14 +00:00
Oleg Endo
c3ddbdce59 re PR libstdc++/58625 (std::signbit always converts to double)
2013-10-06  Oleg Endo  <olegendo@gcc.gnu.org>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/58625
	* include/c_global/cmath (signbit): Use __builtin_signbitf and
	__builtin_signbitl.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>

From-SVN: r203228
2013-10-06 13:44:47 +00:00
Tim Shen
468146e0b5 regex_executor.tcc (_DFSExecutor<>::_M_dfs): Fix wrong backup variable initialization.
2013-10-03  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex_executor.tcc (_DFSExecutor<>::_M_dfs): Fix wrong
	backup variable initialization.

From-SVN: r203190
2013-10-03 20:54:01 +00:00
John Woolverton
d358f34868 re PR libstdc++/58604 (Text truncation in comments of /usr/include/c++/4.7/vector)
2013-10-03  John Woolverton  <jdwoolverton@gmail.com>

	PR libstdc++/58604
	* include/std/vector: Fix garbled line in HP Copyright.

From-SVN: r203187
2013-10-03 20:33:05 +00:00
Marc Glisse
fc7657bb38 del_op.cc (operator delete): Don't test for 0 before free.
2013-10-03  Marc Glisse  <marc.glisse@inria.fr>

	* libsupc++/del_op.cc (operator delete): Don't test for 0 before free.
	* libsupc++/del_opnt.cc (free): Only declare if freestanding.
	(operator delete): Qualify free with std::.

From-SVN: r203164
2013-10-03 16:16:40 +00:00
Jonathan Wakely
44d209d7e2 re PR libstdc++/58569 (Compilation error when a class contains multiple std::function)
2013-10-02  Jonathan Wakely  <jwakely.gcc@gmail.com>
	    Daniel Krugler  <daniel.kruegler@gmail.com>

	PR libstdc++/58569
	* include/std/functional (function::_CheckResult): Move to namespace
	scope and rename to __check_func_return_type.
	* testsuite/20_util/function/58569.cc: New.

Co-Authored-By: Daniel Kruegler <daniel.kruegler@gmail.com>

From-SVN: r203132
2013-10-02 21:21:52 +01:00
Jonathan Wakely
3fd113d7f1 re PR libstdc++/58594 (std::make_shared does not accept const types as parameters)
PR libstdc++/58594
	* include/bits/shared_ptr_base.h
	(_Sp_counted_ptr_inplace::_M_get_deleter()): Cast away cv-quals.
	* testsuite/20_util/shared_ptr/creation/58594.cc: New.

From-SVN: r203131
2013-10-02 20:55:14 +01:00
Tim Shen
756aa0c302 2013-10-02 Tim Shen <timshen91@gmail.com>
* include/bits/regex_compiler.h
	(_BracketMatcher<>::_M_add_equivalence_class): Implement it correctly.
	* include/bits/regex_compiler.tcc (_BracketMatcher<>::operator()):
	Add _M_equiv_set support.
	* testsuite/28_regex/algorithms/regex_match/extended/
	cstring_bracket_01.cc: Add new "[[=a=]]" testcase.

From-SVN: r203117
2013-10-02 15:13:18 +00:00
Tim Shen
c877c34248 status_cxx2011.xml: Change "is not implemented" to "is not correctly implemented".
2013-10-01  Tim Shen  <timshen91@gmail.com>

	* doc/xml/manual/status_cxx2011.xml: Change "is not implemented" to
	"is not correctly implemented".

From-SVN: r203097
2013-10-01 23:56:45 +00:00
Tim Shen
7d48a109d3 status_cxx2011.xml: Update regex status.
2013-10-01  Tim Shen  <timshen91@gmail.com>

	* doc/xml/manual/status_cxx2011.xml: Update regex status.
	* include/bits/regex.h (match_results<>::begin,
	match_results<>::cbegin, match_results<>::end, match_results<>::cend):
	[28.10.3.13], [28.10.3.14] Always iterate the range [0, size()-2).

From-SVN: r203096
2013-10-01 23:44:04 +00:00
François Dumont
089ccc04e4 algobase.h (mismatch, equal): Provide parallel version for N3671 overloads.
2013-10-01  François Dumont  <fdumont@gcc.gnu.org>

	* include/parallel/algobase.h (mismatch, equal): Provide parallel
	version for N3671 overloads.

From-SVN: r203082
2013-10-01 19:35:01 +00:00
Paul Pluzhnikov
4167a189f6 Fix build break when configured with --enable-symvers=gnu-versioned-namespace
2013-10-01  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* src/c++11/snprintf_lite.cc: Add missing
	_GLIBCXX_{BEGIN,END}_NAMESPACE_VERSION

From-SVN: r203076
2013-10-01 11:20:36 -07:00
Joern Rennecke
53426f6c14 Configuration bits for ARC port:
toplevel:

2013-02-25  Simon Cook  <simon.cook@embecosm.com>

        Changes to build configuration to allow big endian ARC ELF toolchain
        * configure.ac: Also add target-libgloss to noconfigdirs for arceb-*-*.
        * configure: Regenerate.

gcc:

2013-04-03  Joern Rennecke  <joern.rennecke@embecosm.com>
            Brendan Kehoe  <brendan@zen.org>
            Simon Cook  <simon.cook@embecosm.com>

         * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.

libstdc++-v3:

2012-08-16  Joern Rennecke  <joern.rennecke@embecosm.com>

        * acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Also check for
        _Unwind_SjLj_Register when deciding if to set enable_sjlj_exceptions.
        * configure: Regenerate.

contrib:

2013-09-05  Joern Rennecke  <joern.rennecke@embecosm.com>

        * config-list.mk: Add arc configurations.

From-SVN: r203070
2013-10-01 17:34:40 +01:00
Tim Shen
70b50ed7b5 re PR libstdc++/58576 (std::regex_match() reports mismatched braces on a valid regex)
2013-10-01  Tim Shen  <timshen91@gmail.com>

	PR libstdc++/58576
	* include/bits/regex_automaton.tcc (_NFA<>::_M_eliminate_dummy)
	(_StateSeq<>::_M_clone): Add _S_opcode_subexpr_lookahead branch.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/58576.cc: New.

From-SVN: r203067
2013-10-01 15:26:50 +00:00
Paolo Carlini
a52906946a algo.h (__find_switch): Use __binder2nd.
2013-09-30  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/parallel/algo.h (__find_switch): Use __binder2nd.

From-SVN: r203040
2013-09-30 19:17:07 +00:00
Chris Jefferson
a10bad862f re PR libstdc++/58437 (Sorting value in reverse order is much slower compare to gcc44)
2013-09-30  Chris Jefferson  <chris@bubblescope.net>

	PR libstdc++/58437
	* include/bits/stl_algo.h (__move_median_first): Rename to
	__move_median_to_first, change to take an addition argument.
	(__unguarded_partition_pivot): Adjust.
	* testsuite/performance/25_algorithms/sort.cc: New.
	* testsuite/performance/25_algorithms/sort_heap.cc: Likewise.
	* testsuite/performance/25_algorithms/stable_sort.cc: Likewise.

From-SVN: r203035
2013-09-30 17:42:31 +00:00
François Dumont
3bd2644c00 stl_algo.h (remove_copy, [...]): Declare inline.
2013-09-28  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_algo.h (remove_copy, remove_copy_if): Declare
	inline.
	(rotate_copy, stable_partition, partial_sort_copy): Likewise.
	(lower_bound, upper_bound, equal_range, inplace_merge): Likewise.
	(includes, next_permutation, prev_permutation): Likewise.
	(replace_copy, replace_copy_if, is_sorted_until): Likewise.
	(minmax_element, is_permutation, adjacent_find): Likewise.
	(count, count_if, search, search_n, merge): Likewise.
	(set_intersection, set_difference): Likewise.
	(set_symmetric_difference, min_element, max_element): Likewise.
	* include/bits/stl_algobase.h (lower_bound): Likewise.
	(lexicographical_compare, mismatch): Likewise.

From-SVN: r203008
2013-09-28 20:30:51 +00:00
Tim Shen
8d60fca50e regex_scanner.tcc (_Scanner<>::_M_eat_escape_posix): Let ordinary char escaping in POSIX be valid.
2013-09-28  Tim Shen <timshen91@gmail.com>

	* include/bits/regex_scanner.tcc (_Scanner<>::_M_eat_escape_posix):
	Let ordinary char escaping in POSIX be valid.
	* testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Test this
	change.

From-SVN: r203005
2013-09-28 13:41:09 +00:00
François Dumont
ea89b2482f predefined_ops.h: New.
2013-09-27  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/predefined_ops.h: New.
	* include/bits/stl_heap.h: Include <bits/predefined_ops.h>.
	(__is_heap_until, __push_heap, __adjust_heap, __pop_heap): Remove
	algo duplication.
	(__is_heap): Adapt.
	(__make_heap): New.
	(make_heap): Adapt to use latter.
	(__sort_heap): New.
	(sort_heap): Adapt to use latter.
	* include/bits/algobase.h: Include <bits/predefined_ops.h>.
	(__lexicographical_compare_impl): New.
	(__lexicographical_compare<false>::__lc): Adapt to use latter.
	(lexicographical_compare): Likewise.
	(__lower_bound): New.
	(lower_bound): Adapt to use latter.
	(equal): Use _GLIBCXX_STD_A::equal in N3671 overloads.
	(__mismatch): New.
	(mismatch): Use latter.
	* include/bits/algo.h: Include <bits/predefined_ops.h>. Remove
	<functional> include.
	(__move_median_first, __find, __find_if, __find_if_not): Remove
	algo duplication.
	(__find_end): Likewise.
	(__search_n): Rename into ...
	(__search_n_aux): ... this.
	(__search_n): Renew, use latter.
	(search_n): Use latter.
	(__search): New.
	(search): Use latter.
	(__find_end): Likewise.
	(__remove_copy_if): New.
	(remove_copy): Use latter.
	(__adjacent_find): New.
	(adjacent_find): Use latter.
	(__unique): New.
	(unique): Use latter.
	(__unique_copy): Remove algo duplication.
	(__stable_partition): New.
	(stable_partition): Use latter.
	(__heap_select): Remove algo duplication, use __make_heap.
	(__partial_sort): New, use latter.
	(partial_sort): Use latter.
	(__partial_sort_copy): New.
	(partial_sort_copy): Use latter.
	(__unguarded_linear_insert, __insertion_sort): Remove algo
	duplication.
	(__unguarded_insertion_sort, __final_insertion_sort): Likewise.
	(__unguarded_partition, __unguarded_partition_pivot): Likewise.
	(__partial_sort): New.
	(partial_sort): Use latter.
	(__sort): New.
	(sort): Use latter.
	(lower_bound): Use __lower_bound.
	(__upper_bound): New.
	(upper_bound): Use latter.
	(__equal_range): New.
	(equal_range): Use latter.
	(__move_merge_adaptive, __move_merge_adaptive_backward): Remove
	algo duplication.
	(__merge_adaptive, __merge_without_buffer): Likewise.
	(__inplace_merge): New.
	(inplace_merge): Use latter.
	(__move_merge, __merge_sort_loop, __chunk_insertion_sort): Remove
	algo duplication.
	(__merge_sort_with_buffer, __stable_sort_adaptive): Likewise.
	(__inplace_stable_sort): Likewise.
	(__include): New.
	(includes): Use latter.
	(__next_permutation): New.
	(next_permutation): Use latter.
	(__prev_permutation): New.
	(prev_permutation): Use latter.
	(__replace_copy_if): New.
	(replace_copy): Use latter.
	(__is_sorted_until): New.
	(is_sorted_unitl): Use latter.
	(__minmax_element): New.
	(minmax_element): Use latter.
	(__is_permutation): New.
	(is_permutation): Use latter.
	(__adjacent_find): New.
	(adjacent_find): Use latter.
	(__count_if): New.
	(count): Use latter.
	(count_if): Likewise.
	(__merge): New.
	(merge): Use latter.
	(__stable_sort): New.
	(stable_sort): Use latter.
	(__set_union): New.
	(set_union): Use latter.
	(__set_intersection): New.
	(set_intersection): Use latter.
	(__set_difference): New.
	(set_difference): Use latter.
	(__set_symmetric_difference): New.
	(set_symmetric_difference): Use latter.
	(__min_element): New.
	(min_element): Use latter.
	(__max_element): New.
	(max_element): Use latter.
	* include/Makefile.am: Add predefined_ops.h.
	* include/Makefile.in: Regenerate.
	* include/parallel/algobase.h (equal, mismatch): Add overloads
	from N3671.
	* testsuite/25_algorithms/is_permutation/vectorbool.cc: New.
	* testsuite/25_algorithms/adjacent_find/vectorbool.cc: Likewise.
	* testsuite/25_algorithms/find/vectorbool.cc: Likewise.
	* testsuite/25_algorithms/find_if/vectorbool.cc: Likewise.
	* testsuite/25_algorithms/find_first_of/vectorbool.cc: Likewise.
	* testsuite/25_algorithms/heap/vectorbool.cc: Likewise.
	* testsuite/25_algorithms/find_end/vectorbool.cc: Likewise.
	* testsuite/25_algorithms/find_if_not/vectorbool.cc: Likewise.

From-SVN: r202992
2013-09-27 21:17:36 +00:00
Jonathan Wakely
d02dae41e3 re PR libstdc++/57465 (Failed postcondition for std::function constructed with null function pointer)
PR libstdc++/57465
	* include/std/functional
	(_Function_base::_Base_manager::_M_not_empty_function): Fix overload
	for pointers.
	* testsuite/20_util/function/cons/57465.cc: New.

From-SVN: r202974
2013-09-27 15:06:09 +01:00
Tim Shen
d4e1260101 regex_error.h: Remove _S_error_last to follow the standard.
2013-09-26  Tim Shen  <timshen91@gmail.com>

	* regex_error.h: Remove _S_error_last to follow the standard.
	* regex_scanner.tcc:
	(_Scanner<_FwdIter>::_M_scan_in_brace): Change error_brace to
	error_badbrace.
	(_Scanner<>::_M_eat_escape_posix): Extended doesn't support
	back-reference.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc:
	Move here from ../../extended.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc:
	Likewise.

From-SVN: r202958
2013-09-26 21:48:04 +00:00
Marc Glisse
34e6625aa2 re PR libstdc++/58338 (Add noexcept to functions with a narrow contract)
2013-09-25  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/58338
	* include/bits/forward_list.h (_Fwd_list_node_base::_M_transfer_after):
	Mark as noexcept.
	(_Fwd_list_iterator) [_Fwd_list_iterator, operator*, operator->,
	operator++, operator==, operator!=, _M_next]: Likewise.
	(_Fwd_list_const_iterator) [_Fwd_list_const_iterator, operator*,
	operator->, operator++, operator==, operator!=, _M_next]: Likewise.
	(operator==(const _Fwd_list_iterator&, const _Fwd_list_const_iterator&),
	operator!=(const _Fwd_list_iterator&, const _Fwd_list_const_iterator&)):
	Likewise.
	* include/bits/hashtable_policy.h (_Hash_node_base::_Hash_node_base,
	_Hash_node::_M_next, _Node_iterator_base::_Node_iterator_base,
	_Node_iterator_base::_M_incr, operator==(const _Node_iterator_base&,
	const _Node_iterator_base&), operator!=(const _Node_iterator_base&,
	const _Node_iterator_base&)): Likewise.
	(_Node_iterator) [_Node_iterator, operator*, operator->, operator++]:
	Likewise.
	(_Node_const_iterator) [_Node_const_iterator, operator*, operator->,
	operator++]: Likewise.
	* include/debug/safe_iterator.h (_Safe_iterator) [_Safe_iterator,
	operator=, operator*, operator->, operator++, operator--, operator[],
	operator+=, operator+, operator-=, operator-, base, operator _Iterator]:
	Likewise.
	(operator==(const _Safe_iterator&, const _Safe_iterator&),
	operator!=(const _Safe_iterator&, const _Safe_iterator&),
	operator<(const _Safe_iterator&, const _Safe_iterator&),
	operator<=(const _Safe_iterator&, const _Safe_iterator&),
	operator>(const _Safe_iterator&, const _Safe_iterator&),
	operator>=(const _Safe_iterator&, const _Safe_iterator&),
	operator-(const _Safe_iterator&, const _Safe_iterator&),
	operator+(difference_type, const _Safe_iterator&)): Likewise.
	* include/profile/iterator_tracker.h (__iterator_tracker)
	[__iterator_tracker, base, operator _Iterator, operator->, operator++,
	operator--, operator=, operator*, operator[], operator+=, operator+,
	operator-=, operator-]: Likewise.
	(operator==(const __iterator_tracker&, const __iterator_tracker&),
	operator!=(const __iterator_tracker&, const __iterator_tracker&),
	operator<(const __iterator_tracker&, const __iterator_tracker&),
	operator<=(const __iterator_tracker&, const __iterator_tracker&),
	operator>(const __iterator_tracker&, const __iterator_tracker&),
	operator>=(const __iterator_tracker&, const __iterator_tracker&),
	operator-(const __iterator_tracker&, const __iterator_tracker&),
	operator+(difference_type, const __iterator_tracker&)): Likewise.

From-SVN: r202924
2013-09-25 20:28:12 +00:00
Marc Glisse
63ebd8f129 re PR libstdc++/58338 (Add noexcept to functions with a narrow contract)
2013-09-24  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/58338
	PR libstdc++/56166
	* include/bits/basic_string.h (basic_string)
	[basic_string(basic_string&&)]: Make the noexcept conditional.
	[operator=(basic_string&&), assign(basic_string&&)]: Link to PR 58265.
	[begin(), end(), rbegin(), rend(), clear]: Remove noexcept.
	[pop_back]: Comment on the lack of noexcept.
	* include/debug/string (basic_string) [basic_string(const _Allocator&),
	basic_string(basic_string&&), begin(), end(), rbegin(), rend(), clear,
	operator[](size_type), pop_back]: Comment out noexcept, until vstring
	replaces basic_string.

From-SVN: r202861
2013-09-24 10:07:32 +00:00