Jonathan Wakely
cc53514672
PR libstdc++/84532 prevent unwrapping of reference_wrapper arguments
...
PR libstdc++/84532
* include/std/thread (thread::__make_invoker): Construct tuple
directly instead of using make_tuple.
* testsuite/30_threads/async/84532.cc: New.
* testsuite/30_threads/thread/84532.cc: New.
From-SVN: r257956
2018-02-23 23:23:43 +00:00
François Dumont
549b1796f1
aligned_buffer.h [...] (template<> __aligned_buffer): Define as __aligned_membuf alias.
...
2018-02-20 François Dumont <fdumont@gcc.gnu.org>
* include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
(template<> __aligned_buffer): Define as __aligned_membuf alias.
From-SVN: r257861
2018-02-20 20:51:44 +00:00
Jonathan Wakely
51f174c0ef
PR libstdc++/81797 Add .NOTPARALLEL to include/Makefile for darwin
...
PR libstdc++/81797
* configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
* configure: Regenerate.
* include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
defined.
* include/Makefile.in: Regenerate.
From-SVN: r257710
2018-02-15 20:56:41 +00:00
Jonathan Wakely
73ebece382
PR libstdc++/83658 fix exception-safety in std::any::emplace
...
PR libstdc++/83658
* include/std/any (any::__do_emplace): Only set _M_manager after
constructing the contained object.
* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
* testsuite/20_util/any/modifiers/83658.cc: New test.
From-SVN: r257141
2018-01-29 12:33:32 +00:00
Jonathan Wakely
58078de77b
PR libstdc++/81076 make __byte_operand SFINAE-friendly
...
PR libstdc++/81076
* include/c_global/cstddef (__byte_operand): Define primary template.
* testsuite/18_support/byte/81076.cc: New test.
From-SVN: r257050
2018-01-25 15:24:39 +00:00
Jonathan Wakely
8b3085e7e8
PR libstdc++/83833 fix chi_squared_distribution::param(const param&)
...
PR libstdc++/83833
* include/bits/random.h (chi_squared_distribution::param): Update
gamma distribution parameter.
* testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
test.
From-SVN: r256708
2018-01-15 19:58:22 +00:00
Jonathan Wakely
b0e63d9483
PR libstdc++/83830 Define std::has_unique_object_representations_v
...
PR libstdc++/83830
* include/std/type_traits (has_unique_object_representations_v): Add
variable template.
* testsuite/20_util/has_unique_object_representations/value.cc: Check
variable template.
From-SVN: r256701
2018-01-15 15:02:01 +00:00
Ville Voutilainen
c89f2d2468
Make optional conditionally trivially_{copy,move}_{constructible,assignable}
...
* include/std/optional (_Optional_payload): Fix the comment in
the class head and turn into a primary and one specialization.
(_Optional_payload::_M_engaged): Strike the NSDMI.
(_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
New.
(_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
Likewise.
(_Optional_payload<_Tp, false>::_M_get): Likewise.
(_Optional_payload<_Tp, false>::_M_reset): Likewise.
(_Optional_base_impl): Likewise.
(_Optional_base): Turn into a primary and three specializations.
(optional(nullopt)): Change the base init.
* testsuite/20_util/optional/assignment/8.cc: New.
* testsuite/20_util/optional/cons/trivial.cc: Likewise.
* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
From-SVN: r256694
2018-01-15 13:32:24 +02:00
Tim Shen
8532713fc4
re PR libstdc++/83601 (std::regex_replace C++14 conformance issue: escaping in SED mode)
...
PR libstdc++/83601
* include/bits/regex.tcc (regex_replace): Fix escaping in sed.
* testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
* testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
From-SVN: r256654
2018-01-14 00:48:30 +00:00
François Dumont
75ce74bbdd
2018-01-10 François Dumont <fdumont@gcc.gnu.org>
...
* include/bits/forward_list.h
(_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
(_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
(_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
(_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
(_Fwd_list_impl()): Add noexcept qualification.
(_Fwd_list_impl(const _Node_alloc_type&)): Delete.
(_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
(_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
(_Fwd_list_base()): Default.
(_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
(_Fwd_list_base(_Fwd_list_base&&)): Default.
(forward_list<>()): Default.
(forward_list<>(forward_list&&)): Default.
(forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
(forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
(forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
* include/bits/forward_list.tcc
(_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
_M_impl._M_head move assignment.
(forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
* testsuite/23_containers/forward_list/allocator/default_init.cc: New.
From-SVN: r256439
2018-01-10 16:59:02 +00:00
François Dumont
0f1462579e
re PR libstdc++/83709 (Inserting duplicates into an unordered associative containers causes the container to invalidate iterators)
...
2018-01-09 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/83709
* include/bits/hashtable_policy.h
(__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
__first != __last.
(_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
(_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
Add false_type parameter.
(_Insert_base::insert): Adapt.
* include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
Adapt.
(_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
Add __n_elt parameter, defaulted to 1.
(_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
policy _M_need_rehash.
(_Hashtable::_M_merge_unique): Pass target number of elements to add to
produce only 1 rehash if necessary.
* testsuite/23_containers/unordered_map/insert/83709.cc: New.
* testsuite/23_containers/unordered_set/insert/83709.cc: New.
From-SVN: r256396
2018-01-09 21:05:10 +00:00
Jonathan Wakely
f7373fce65
Avoid redundant calls to filesystem::status_known
...
* include/bits/fs_ops.h (exists(const path&, error_code&))): Only
check status_known once.
* include/experimental/bits/fs_ops.h: Likewise.
From-SVN: r256243
2018-01-04 13:46:22 +00:00
Jonathan Wakely
32489ab56a
PR libstdc++/83607 specialize Boyer-Moore searchers for std::byte
...
PR libstdc++/83607
* include/std/functional (__is_byte_like): New trait.
(__is_std_equal_to): Remove.
(__boyer_moore_base_t): Use __is_byte_like instead of
__is_std_equal_to.
* include/experimental/functional (__is_std_equal_to): Remove.
(__boyer_moore_base_t): Use __is_byte_like instead of
__is_std_equal_to.
* testsuite/20_util/function_objects/83607.cc: New test.
From-SVN: r256231
2018-01-04 10:21:29 +00:00
Ville Voutilainen
8bdbeed1d0
Protect optional's deduction guide with the feature macro
...
* include/std/optional: Use the feature macro.
From-SVN: r256185
2018-01-03 22:33:10 +02:00
Jakub Jelinek
85ec4feb11
Update copyright years.
...
From-SVN: r256169
2018-01-03 11:03:58 +01:00
Jonathan Wakely
ecba356686
PR libstdc++/83600 fix end iterator for unready std::match_results
...
PR libstdc++/83600
* include/bits/regex.h (match_results::end()): Return valid iterator
when not ready.
* testsuite/28_regex/match_results/ctors/char/default.cc: Check that
unready objects are empty and have equal begin and end iterators.
* testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
From-SVN: r256014
2017-12-27 22:18:08 +00:00
Jonathan Wakely
8afe2df012
PR libstdc++/83598 don't modify flags passed to std::basic_regex constructors
...
PR libstdc++/83598
* include/bits/regex.h (basic_regex): Don't modify flags passed to
constructors.
* testsuite/28_regex/basic_regex/ctors/83598.cc: New test.
From-SVN: r256013
2017-12-27 22:18:02 +00:00
Jonathan Wakely
c41743d0c0
PR libstdc++/83538 fix std::match_results<T>::reference (LWG 2306)
...
PR libstdc++/83538
* doc/xml/manual/intro.xml: Document LWG 2306 change.
* include/bits/regex.h (match_results::reference): Change to
non-const reference.
* testsuite/28_regex/match_results/typedefs.cc: Check types are
correct.
From-SVN: r256012
2017-12-27 19:43:33 +00:00
Michele Pezzutti
73986c315b
re PR libstdc++/83237 (Values returned by std::poisson_distribution are not distributed correctly)
...
2017-12-24 Michele Pezzutti <mpezz@tiscali.it>
PR libstdc++/83237
* include/bits/random.tcc (poisson_distribution<>::operator()):
Fix __x = 1 case - see updated Errata of Devroye's treatise.
* testsuite/26_numerics/random/poisson_distribution/operators/
values.cc: Add test.
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
line number.
From-SVN: r255993
2017-12-24 22:08:52 +00:00
François Dumont
1679da1571
re PR libstdc++/82522 (std::map::insert(value_type &&) not selected)
...
2017-12-20 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/82522
* include/debug/map.h (map::insert(value_type&&))
(map::insert(const_iterator, value_type&&)): Add overload for rvalues.
* include/debug/multimap.h (multimap::insert(value_type&&))
(multimap::insert(const_iterator, value_type&&)): Likewise.
* include/debug/unordered_map (unordered_map::insert(value_type&&))
(unordered_map::insert(const_iterator, value_type&&))
(unordered_multimap::insert(value_type&&))
(unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
* testsuite/23_containers/map/modifiers/insert/dr2354.cc (test02): New.
* testsuite/23_containers/multimap/modifiers/insert/dr2354.cc (test02):
New.
* testsuite/23_containers/unordered_map/insert/dr2354.cc (test02): New.
* testsuite/23_containers/unordered_multimap/insert/dr2354.cc (test02):
New.
From-SVN: r255904
2017-12-20 21:53:25 +00:00
François Dumont
adaefe2a50
re PR libstdc++/80761 (std::set<T,C,A>::insert_return_type uses wrong iterator type)
...
2017-11-20 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/80761
* include/debug/map.h
(std::__debug::map<>::insert_return_type): Define using
_Node_insert_return.
* include/debug/set.h (std::__debug::set<>::insert_return_type):
Likewise.
* include/debug/unordered_map:
(std::__debug::unordered_map<>::insert_return_type): Likewise.
* include/debug/unordered_set:
(std::__debug::unordered_set<>::insert_return_type): Likewise.
From-SVN: r255789
2017-12-18 21:59:17 +00:00
Martin Sebor
d43568222a
PR tree-optimization/83239 - False positive from -Wstringop-overflow
...
PR tree-optimization/83239 - False positive from -Wstringop-overflow
on simple std::vector code
libstdc++/CHangeLog:
* include/bits/vector.tcc (vector::_M_default_append): Assert
invariant to generate better code.
gcc/testsuite/ChangeLog:
* g++.dg/pr83239.C: New test case.
From-SVN: r255753
2017-12-16 15:37:22 -07:00
Jonathan Wakely
83fd5e73b3
PR libstdc++/68519 use native duration to avoid rounding errors
...
PR libstdc++/68519
* include/std/condition_variable (condition_variable::wait_for):
Convert duration to native clock's duration before addition.
* testsuite/30_threads/condition_variable/members/68519.cc: New test.
From-SVN: r255665
2017-12-14 20:41:52 +00:00
Jonathan Wakely
00677c4877
PR libstdc++/83427 detect weak result type from noexcept functions
...
PR libstdc++/83427
* include/bits/refwrap.h (_Maybe_unary_or_binary_function): Move here
from <bits/std_function.h>.
(_Mem_fn_traits_base, _Mem_fn_traits): Move here, from <functional>.
(_Weak_result_type_impl, _Reference_wrapper_base): Deduce noexcept
for function types. Remove partial specializations for member
functions.
(_Weak_result_type_impl): Remove unused partial specializations for
non-referenceable function types and for references to functions.
(_Weak_result_type_memfun, _Reference_wrapper_base_memfun): New
helpers to handle member functions via _Mem_fn_traits.
(_Weak_result_type, reference_wrapper): Derive from new helpers.
* include/bits/std_function.h (_Maybe_unary_or_binary_function): Move
to <bits/refwrap.h>.
* include/std/functional (_Pack, _AllConvertible, _NotSame): Remove.
(_Mem_fn_traits_base, _Mem_fn_traits): Move to <bits/refwrap.h>.
* testsuite/20_util/bind/83427.cc: New test.
* testsuite/20_util/bind/refqual.cc: Add noexcept to functions and
check for weak result types.
* testsuite/20_util/reference_wrapper/83427.cc: New test.
From-SVN: r255651
2017-12-14 17:18:22 +00:00
Jonathan Wakely
3ca652c199
PR libstdc++/59568 fix error handling for std::complex stream extraction
...
PR libstdc++/59568
* include/std/complex (operator>>): Implement proposed resolution to
LWG 2714. Use putback if and only if a character has been successfully
extracted but isn't a delimiter. Use ctype::widen and traits::eq when
testing if extracted characters match delimiters.
* testsuite/26_numerics/complex/dr2714.cc: New test.
From-SVN: r255608
2017-12-13 17:02:14 +00:00
Jonathan Wakely
91d01b33e8
PR libstdc++/83395 fix invocable traits for INVOKE<cv void>
...
PR libstdc++/83395
* include/std/type_traits (__is_invocable_impl): Remove partial
specialization for INVOKE<void> and restore is_void<R> check in
primary template.
(__is_nt_invocable_impl): Likewise.
* testsuite/20_util/is_invocable/83395.cc: New test.
* testsuite/20_util/is_nothrow_invocable/83395.cc: New test.
From-SVN: r255584
2017-12-12 17:42:19 +00:00
Martin Sebor
5d9ae53d70
PR c/81544 - attribute noreturn and warn_unused_result on the same function accepted
...
PR c/81544 - attribute noreturn and warn_unused_result on the same function accepted
PR c/81566 - invalid attribute aligned accepted on functions
gcc/ada/ChangeLog:
PR c/81544
* gcc-interface/utils.c (gnat_internal_attribute_table): Initialize
new member of struct attribute_spec.
gcc/c/ChangeLog:
PR c/81544
* c-decl.c (c_decl_attributes): Look up existing declaration and
pass it to decl_attributes.
gcc/c-family/ChangeLog:
PR c/81544
PR c/81566
* c-attribs.c (attr_aligned_exclusions): New array.
(attr_alloc_exclusions, attr_cold_hot_exclusions): Same.
(attr_common_exclusions, attr_const_pure_exclusions): Same.
(attr_gnu_inline_exclusions, attr_inline_exclusions): Same.
(attr_noreturn_exclusions, attr_returns_twice_exclusions): Same.
(attr_warn_unused_result_exclusions): Same.
(handle_hot_attribute, handle_cold_attribute): Simplify.
(handle_const_attribute): Warn on function returning void.
(handle_pure_attribute): Same.
(handle_aligned_attribute): Diagnose conflicting attribute
specifications.
* c-warn.c (diagnose_mismatched_attributes): Simplify.
gcc/cp/ChangeLog:
PR c/81544
* cp-tree.h (decls_match): Add default argument.
* decl.c (decls_match): Avoid calling into the target back end
and triggering an error.
* decl2.c (cplus_decl_attributes): Look up existing declaration and
pass it to decl_attributes.
* tree.c (cxx_attribute_table): Initialize new member of struct
attribute_spec.
gcc/fortran/ChangeLog:
PR c/81544
* f95-lang.c (gfc_attribute_table): Initialize new member of struct
attribute_spec.
gcc/lto/ChangeLog:
PR c/81544
* lto-lang.c (lto_attribute_table): Initialize new member of struct
attribute_spec.
gcc/ChangeLog:
PR c/81544
* attribs.c (empty_attribute_table): Initialize new member of
struct attribute_spec.
(decl_attributes): Add argument. Handle mutually exclusive
combinations of attributes.
(selftests::test_attribute_exclusions): New function.
(selftests::attribute_c_tests): Ditto.
* attribs.h (decl_attributes): Add default argument.
* selftest.h (attribute_c_tests): Declare.
* selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests.
* tree-core.h (attribute_spec::exclusions, exclude): New type and
member.
* doc/extend.texi (Common Function Attributes): Update const and pure.
gcc/testsuite/ChangeLog:
PR c/81544
* c-c++-common/Wattributes-2.c: New test.
* c-c++-common/Wattributes.c: New test.
* c-c++-common/attributes-3.c: Adjust.
* gcc.dg/Wattributes-6.c: New test.
* gcc.dg/Wattributes-7.c: New test.
* gcc.dg/attr-noinline.c
* gcc.dg/pr44964.c: Same.
* gcc.dg/torture/pr42363.c: Same.
* gcc.dg/tree-ssa/ssa-ccp-2.c: Same.
From-SVN: r255469
2017-12-07 09:32:03 -07:00
Jason Merrill
0382bcfcda
Correct noexcept mismatch in declarations.
...
2017-12-05 Jason Merrill <jason@redhat.com>
Jonathan Wakely <jwakely@redhat.com>
* include/bits/fs_fwd.h (copy, copy_file): Remove noexcept.
(permissions): Add noexcept.
* include/bits/fs_ops.h (permissions): Add noexcept.
* libsupc++/eh_throw.cc (__cxa_init_primary_exception): Add
_GLIBCXX_NOTHROW.
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r255425
2017-12-05 15:23:26 +00:00
Jonathan Wakely
472a7639ea
Fix warnings in <bits/regex_compiler.tcc>
...
* include/bits/regex_compiler.tcc: Use C-style comment to work around
PR preprocessor/61638.
(__INSERT_REGEX_MATCHER): Replace GNU extension with __VA_ARGS__.
From-SVN: r255392
2017-12-04 23:08:22 +00:00
Jonathan Wakely
9ed83a33c0
Fix -Wunused warnings in libstdc++ headers
...
* config/io/basic_file_stdio.h (__basic_file): Remove name of unused
parameter.
* include/bits/boost_concept_check.h: Add pragmas to disable
-Wunused-local-typedef warnings.
* include/bits/codecvt.h (codecvt_byname<char16_t, char, mbstate_t>)
(codecvt_byname<char32_t, char, mbstate_t>): Remove name of unused
parameter.
* include/bits/locale_facets_nonio.tcc (time_get::do_get_weekday)
(time_get::do_get_monthname, time_get::do_get_year): Remove unused
variables.
* include/std/bitset (_Base_bitset<0>::_M_getword): Remove name of
unused parameter.
* include/std/streambuf (_IsUnused): Define.
(basic_streambuf::imbue, basic_streambuf::pbackfail)
(basic_streambuf::overflow): Add macro to unused parameters.
* testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error.
From-SVN: r255391
2017-12-04 23:07:39 +00:00
Jonathan Wakely
ad8fda29e6
Fix narrowing conversions in string_view types
...
* include/experimental/string_view (basic_string_view::_S_compare):
Use value-init so narrowing conversions are not ill-formed.
* include/std/string_view (basic_string_view::_S_compare): Likewise.
From-SVN: r255321
2017-12-01 16:10:31 +00:00
Jonathan Wakely
f03858e51d
Disable -Wliteral-suffix for standard UDLs
...
* include/bits/basic_string.h (operator""s): Add pragmas to disable
-Wliteral-suffix warnings.
* include/experimental/string_view (operator""sv): Likewise.
* include/std/chrono (operator""h, operator""min, operator""s)
(operator""ms, operator""us, operator""ns): Likewise.
* include/std/complex (operator""if, operator""i, operator""il):
Likewise.
* include/std/string_view (operator""sv): Likewise.
* testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
From-SVN: r255320
2017-12-01 16:10:25 +00:00
Jonathan Wakely
ccd9a1e0ef
Add comment to fix -Wfallthrough warning
...
* include/bits/locale_facets_nonio.tcc (money_get::_M_extract): Add
fallthrough comment.
From-SVN: r255318
2017-12-01 15:10:23 +00:00
Jonathan Wakely
b7b61489b7
Fix -Wempty-body warnings for debug assertions
...
* include/bits/node_handle.h (_Node_handle_common::operator=)
(_Node_handle_common::_M_swap): Add braces around debug assertions.
From-SVN: r255317
2017-12-01 15:10:20 +00:00
Jonathan Wakely
f1338a2dcb
Use const char* to fix -Wwrite-strings warning
...
* include/ext/ropeimpl.h (rope::_S_dump): Use const char*.
From-SVN: r255316
2017-12-01 15:10:16 +00:00
Jonathan Wakely
071f228fa3
Remove stray semi-colons at namespace scope
...
* include/bits/regex_executor.tcc (_Executor::_M_rep_once_more):
Remove semi-colon after function body.
* include/bits/uniform_int_dist.h (_Power_of_2): Likewise.
From-SVN: r255314
2017-12-01 15:10:09 +00:00
Jonathan Wakely
e735008bf6
Use value-init syntax in std::__detail::__airy
...
* include/tr1/modified_bessel_func.tcc (__airy): Use value-init not
list-init.
From-SVN: r255313
2017-12-01 15:10:06 +00:00
Jonathan Wakely
352111c5b1
Add noexcept to std::integral_constant members
...
* include/std/type_traits (integral_constant): Make member functions
noexcept (LWG 2346).
* include/std/utility (integer_sequence): Likewise.
From-SVN: r255312
2017-12-01 15:09:57 +00:00
Jonathan Wakely
d44e1abee5
PR libstdc++/65927 Fix -Wunused-but-set-parameter warning
...
PR libstdc++/65927
* include/bits/locale_facets_nonio.h (__timepunct::_M_am_pm_format):
Remove statement with no effect.
From-SVN: r255278
2017-11-30 17:29:08 +00:00
Glen Joseph Fernandes
6b590c7a64
Move assertion from to_address to __to_address
...
2017-11-30 Glen Joseph Fernandes <glenjofe@gmail.com>
* include/bits/ptr_traits.h (__to_address, to_address): Move static
assertion.
* testsuite/20_util/to_address/1_neg.cc: New test.
From-SVN: r255277
2017-11-30 15:07:21 +00:00
Jonathan Wakely
5f939178ec
PR libstdc++/83226 avoid forming pointer-to-reference type
...
PR libstdc++/83226
* include/bits/node_handle.h (_Node_handle::__pointer): Avoid forming
pointer-to-reference types.
* testsuite/23_containers/map/modifiers/insert/83226.cc: New test.
From-SVN: r255271
2017-11-30 13:45:37 +00:00
Glen Joseph Fernandes
61cd19e6be
Add std::to_address for C++2a (P0653R2)
...
2017-11-28 Glen Joseph Fernandes <glenjofe@gmail.com>
* include/bits/ptr_traits.h (to_address): Implement to_address.
* testsuite/20_util/to_address/1.cc: New test.
From-SVN: r255199
2017-11-28 14:22:32 +00:00
Stephan Bergmann
0f42ffd7f7
Add missing noexcept in string_view::find_first_of declaration
...
2017-11-27 Stephan Bergmann <sbergman@redhat.com>
* include/std/string_view (basic_string_view::find_first_of): Add
missing noexcept.
From-SVN: r255176
2017-11-27 19:43:40 +00:00
Stephan Bergmann
68e601d879
Fix std::unordered_map deduction guide
...
2017-11-27 Stephan Bergmann <sbergman@redhat.com>
* include/bits/unordered_map.h (unordered_map): Fix deduction guide.
* include/debug/unordered_map (unordered_map): Likewise.
From-SVN: r255174
2017-11-27 16:43:39 +00:00
Jonathan Wakely
d69f1ec7d1
Add [[nodiscard]] attribute to C++17 components
...
* include/bits/fs_path.h (path::empty): Add nodiscard attribute.
* include/bits/range_access.h (empty): Likewise.
* include/std/string_view (basic_string_view::empty): Likewise.
* testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: New
test.
* testsuite/24_iterators/range_access_cpp17_neg.cc: New test.
* testsuite/27_io/filesystem/path/query/empty_neg.cc: New test.
From-SVN: r255124
2017-11-23 22:11:21 +00:00
Jonathan Wakely
4b9840f230
PR libstdc++/83134 Ensure std::__not_ converts B::value to bool
...
PR libstdc++/83134
* include/std/type_traits (__not_): Explicitly convert to bool.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
* testsuite/20_util/logical_traits/83134.cc: New test.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
dg-error.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
From-SVN: r255122
2017-11-23 21:35:27 +00:00
Jonathan Wakely
e350134d72
PR go/83102 relax std::set checks for invocable comparison object
...
PR go/83102
* include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
comparison object pre-C++17.
From-SVN: r255052
2017-11-22 11:06:15 +00:00
Jonathan Wakely
866e4d3853
PR libstdc++/48101 improve errors for invalid container specializations
...
PR libstdc++/48101
* include/bits/allocator.h (allocator<const _Tp>)
(allocator<volatile _Tp>, allocator<const volatile _Tp>): Add partial
specializations.
* include/bits/forward_list.h (forward_list): Add static assertions.
* include/bits/hashtable.h (__cache_default): Use
__is_nothrow_invocable instead of __is_noexcept_hash.
(_Hashtable): Add static assertions.
* include/bits/hashtable_policy.h (__is_noexcept_hash): Remove.
* include/bits/stl_deque.h (deque): Add static assertions.
* include/bits/stl_function.h (_Identity<const _Tp>): Add partial
specialization.
* include/bits/stl_list.h (list): Add static assertions.
* include/bits/stl_map.h (map): Likewise.
* include/bits/stl_multimap.h (multimap): Likewise.
* include/bits/stl_multiset.h (multiset): Likewise.
* include/bits/stl_set.h (set): Likewise.
* include/bits/stl_tree.h (_Rb_tree): Likewise.
* include/bits/stl_vector.h (vector): Likewise.
* include/bits/unordered_map.h (unordered_map, unordered_multimap):
Use typename instead of class in template-parameter-list and remove
spaces.
* include/bits/unordered_set.h (unordered_set, unordered_multiset):
Likewise.
* testsuite/23_containers/deque/48101-2_neg.cc: New test.
* testsuite/23_containers/deque/48101_neg.cc: New test.
* testsuite/23_containers/forward_list/48101-2_neg.cc: New test.
* testsuite/23_containers/forward_list/48101_neg.cc: New test.
* testsuite/23_containers/list/48101-2_neg.cc: New test.
* testsuite/23_containers/list/48101_neg.cc: New test.
* testsuite/23_containers/map/48101-2_neg.cc: New test.
* testsuite/23_containers/map/48101_neg.cc: New test.
* testsuite/23_containers/map/operations/31440.cc: Fix comparison
object to have const-qualified call operator.
* testsuite/23_containers/multimap/48101-2_neg.cc: New test.
* testsuite/23_containers/multimap/48101_neg.cc: New test.
* testsuite/23_containers/multiset/48101-2_neg.cc: New test.
* testsuite/23_containers/multiset/48101_neg.cc: New test.
* testsuite/23_containers/set/48101-2_neg.cc: New test.
* testsuite/23_containers/set/48101_neg.cc: New test.
* testsuite/23_containers/unordered_map/48101-2_neg.cc: New test.
* testsuite/23_containers/unordered_map/48101_neg.cc: New test.
* testsuite/23_containers/unordered_multimap/48101-2_neg.cc: New test.
* testsuite/23_containers/unordered_multimap/48101_neg.cc: New test.
* testsuite/23_containers/unordered_multiset/48101-2_neg.cc: New test.
* testsuite/23_containers/unordered_multiset/48101_neg.cc: New test.
* testsuite/23_containers/unordered_set/48101-2_neg.cc: New test.
* testsuite/23_containers/unordered_set/48101_neg.cc: New test.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
dg-error line number.
* testsuite/23_containers/vector/48101-2_neg.cc: New test.
* testsuite/23_containers/vector/48101_neg.cc: New test.
From-SVN: r255035
2017-11-21 20:47:09 +00:00
François Dumont
e324f9cb92
streambuf_iterator.h (istreambuf_iterator<>): Declare std::advance for istreambuf_iterator of char types to be friend.
...
2017-11-20 François Dumont <fdumont@gcc.gnu.org>
* include/bits/streambuf_iterator.h (istreambuf_iterator<>): Declare
std::advance for istreambuf_iterator of char types to be friend.
(std::advance(istreambuf_iterator&, _Distance)): New overload.
* include/std/streambuf (basic_streambuf<>): Declare std::advance for
istreambuf_iterator of char types to be friend.
* testsuite/22_locale/money_get/get/char/9.cc: Have
istreambuf_iterator created on the fly when calling money_get<>::get.
* testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
* testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc: New.
* testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc: New.
* testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc: New.
* testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc: New.
* testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc:
New.
* testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc: Leverage
on std::advance overload.
* testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
Likewise.
From-SVN: r254972
2017-11-20 22:30:28 +00:00
Ville Voutilainen
7b7b60c830
Implement LWG 2353
...
* include/bits/stl_iterator_base_funcs.h (next):
Use InputIterator instead of ForwardIterator.
* testsuite/24_iterators/operations/lwg2353.cc: New.
* testsuite/24_iterators/operations/next_neg.cc: Remove.
From-SVN: r254957
2017-11-20 16:21:42 +02:00