Eric Fiselier
11b932b0d9
Update status page for variant implementation
...
llvm-svn: 288625
2016-12-04 22:14:53 +00:00
Eric Fiselier
02460bac8b
Choose better hash values for std::monostate and valueless variants.
...
Previously these hashes were 0 and -1 respectively. These seem like common
sentinel values and should be avoided to prevent needless collisions.
This patch changes those values to different arbitrary numbers, which should
hopefully cause less collisions. Because I couldn't help myself I choose the
fundamental constants for gravity and the speed of light.
llvm-svn: 288623
2016-12-04 21:37:37 +00:00
Eric Fiselier
0c6d89d614
Turn off testsuite warnings by default with GCC
...
llvm-svn: 288576
2016-12-03 03:29:45 +00:00
Eric Fiselier
613dc646d3
Make make_exception_ptr abort with -fno-exceptions
...
llvm-svn: 288575
2016-12-03 03:22:11 +00:00
Eric Fiselier
9a0b4abbba
Mark various <variant> items as complete
...
llvm-svn: 288574
2016-12-03 02:47:40 +00:00
Eric Fiselier
46fcbb4da4
Work around more -Wshadow warnings
...
llvm-svn: 288573
2016-12-03 02:26:28 +00:00
Eric Fiselier
63322af698
Fix <variant> w/o exception support
...
llvm-svn: 288571
2016-12-03 01:58:07 +00:00
Eric Fiselier
f9353d89be
Revert workaround for Clang bug. Thanks to Richard for the quick fix
...
llvm-svn: 288566
2016-12-03 01:28:01 +00:00
Eric Fiselier
572e6deeb7
Fix -Wshadow warnings and enable warnings by default for C++ >= 11
...
llvm-svn: 288564
2016-12-03 01:21:40 +00:00
Eric Fiselier
33f947057d
XFAIL variant tests for apple-clang
...
llvm-svn: 288559
2016-12-03 00:33:03 +00:00
Eric Fiselier
465bd0fc00
Enable warnings by default for C++ >= 11 and fix -Wshadow occurances
...
llvm-svn: 288557
2016-12-03 00:27:13 +00:00
Eric Fiselier
d7a50d1d6b
Work around Clang 3.8 bugs
...
llvm-svn: 288556
2016-12-03 00:13:33 +00:00
Eric Fiselier
5877920183
Fix C++03 build
...
llvm-svn: 288555
2016-12-02 23:41:18 +00:00
Eric Fiselier
918f32fc7b
Make variant's index part of the hash value
...
llvm-svn: 288554
2016-12-02 23:38:31 +00:00
Eric Fiselier
cb3ef1561d
Fix generated warnings in <variant>
...
llvm-svn: 288552
2016-12-02 23:17:33 +00:00
Eric Fiselier
c7a28dee10
Update darwin ABI list for <variant>
...
llvm-svn: 288551
2016-12-02 23:14:18 +00:00
Eric Fiselier
aa97dee358
Update ABI lists for <variant>
...
llvm-svn: 288550
2016-12-02 23:11:28 +00:00
Eric Fiselier
0d3d8de014
Implement C++17 <variant>. Patch from Michael Park!
...
This patch was reviewed as https://reviews.llvm.org/D23263 .
llvm-svn: 288547
2016-12-02 23:00:05 +00:00
Eric Fiselier
13b6cc4b08
Work around a bug in Clang's implementation of noexcept function types
...
llvm-svn: 288544
2016-12-02 22:30:52 +00:00
Eric Fiselier
ffd5732170
Fix copy/paste errors in new variant tests
...
llvm-svn: 288538
2016-12-02 21:32:35 +00:00
Eric Fiselier
96be8df23e
Add tests for libc++'s constexpr variant copy/move extension
...
llvm-svn: 288536
2016-12-02 21:17:51 +00:00
Roger Ferrer Ibanez
de344ac83b
Protect sequences test under libcpp-no-exceptions
...
Replace throw with TEST_THROW and protect tests that do throw. Also add missing assert(false).
Differential Revision: https://reviews.llvm.org/D27252
llvm-svn: 288383
2016-12-01 17:36:41 +00:00
Roger Ferrer Ibanez
f3fce920ff
Protect futures test under libcpp-no-exceptions
...
Skip tests that expect an exception be thrown.
Differential Revision: https://reviews.llvm.org/D27253
llvm-svn: 288382
2016-12-01 17:34:57 +00:00
Roger Ferrer Ibanez
c9a8a5596f
Protect optional test under libcpp-no-exceptions
...
Replace throw with TEST_THROW and skip tests that throw exceptions
Differential Revision: https://reviews.llvm.org/D27254
llvm-svn: 288379
2016-12-01 17:33:36 +00:00
Roger Ferrer Ibanez
9f1bcb65aa
Protect std::ostream::sentry test under libcpp-no-exceptions
...
Skip test that throws an exception.
Differential Revision: https://reviews.llvm.org/D27255
llvm-svn: 288378
2016-12-01 17:31:38 +00:00
Roger Ferrer Ibanez
86663cd0ef
Protect std::array tests under noexceptions
...
Skip tests that expect exceptions be thrown. Also add missing asserts.
Differential Revision: https://reviews.llvm.org/D27095
llvm-svn: 288165
2016-11-29 17:10:29 +00:00
Roger Ferrer Ibanez
9d03c03858
Protect std::string tests under libcpp-no-exceptions
...
Skip tests that expect an exception be thrown and/or disable
unreachable catch handlers.
Differential Revision: https://reviews.llvm.org/D26612
llvm-svn: 288158
2016-11-29 16:40:19 +00:00
Roger Ferrer Ibanez
f2e50651f6
Protect std::{,unordered_}map tests under noexceptions
...
Skip tests that use exceptions
Differential Revision: https://reviews.llvm.org/D27093
llvm-svn: 288157
2016-11-29 16:37:48 +00:00
Roger Ferrer Ibanez
d7306fb85a
Protect locale tests under noexceptions
...
Skip tests that expect exceptions be thrown.
Differential Revision: https://reviews.llvm.org/D27096
llvm-svn: 288156
2016-11-29 16:31:40 +00:00
Roger Ferrer Ibanez
21ad28cfb4
Protect test for dynarray under libcpp-no-exceptions
...
This test expects an exception be thrown.
Differential Revision: https://reviews.llvm.org/D26611
llvm-svn: 288155
2016-11-29 16:27:45 +00:00
Aditya Kumar
b9775795a8
[libcxx] remove unused code
...
The macro _LIBCPP_UNROLL_LOOPS isn't used anywhere
so the code was dead.
Differential Revision: https://reviews.llvm.org/D26991
llvm-svn: 288143
2016-11-29 14:43:42 +00:00
Marshall Clow
13320a50e5
Implement conjuntion/disjuntion/negation for LFTS v2. Same code and tests for the ones in std::
...
llvm-svn: 287988
2016-11-26 18:45:03 +00:00
Marshall Clow
3b3352dead
Implement the 'detection idiom' from LFTS v2
...
llvm-svn: 287981
2016-11-26 15:49:40 +00:00
Roger Ferrer Ibanez
d056b5be51
Reverting wrong diff
...
I managed to confuse me with two reviews of the same thing and ended commiting the wrong one.
llvm-svn: 287868
2016-11-24 11:28:02 +00:00
Roger Ferrer Ibanez
929282836a
Protect tests for std::uninitialized_{copy,fill} under libcpp-no-exceptions
...
Skip tests that expect an exception be thrown.
Differential Revision: https://reviews.llvm.org/D26606
llvm-svn: 287866
2016-11-24 11:17:09 +00:00
Roger Ferrer Ibanez
c65daf3e4a
Protect std::string tests under libcpp-no-exceptions
...
Skip tests that expect an exception be thrown and/or disable
unreachable catch handlers.
Differential Revision: https://reviews.llvm.org/D26608
llvm-svn: 287865
2016-11-24 11:15:09 +00:00
Stephan T. Lavavej
d72ece6462
[libcxx] [test] D27027: Strip trailing whitespace.
...
llvm-svn: 287829
2016-11-23 22:03:28 +00:00
Stephan T. Lavavej
640660aa3f
[libcxx] [test] D27026: Fix copy-paste silliness; ULL can't ever be 32-bit.
...
llvm-svn: 287828
2016-11-23 22:02:59 +00:00
Stephan T. Lavavej
8eb5ce8652
[libcxx] [test] D27020: Fix MSVC warning C4245 "conversion from 'X' to 'Y', signed/unsigned mismatch", part 7/12.
...
When initializing unsigned integers to their maximum values, change "const T M(~0);" to "const T M(static_cast<T>(-1));".
~0 and -1 are equivalent, but I consider the -1 form to be significantly clearer (and more consistent with other tests).
llvm-svn: 287827
2016-11-23 22:02:53 +00:00
Stephan T. Lavavej
bbdf9b7d2b
[libcxx] [test] D27019: Fix MSVC warning C4245 "conversion from 'X' to 'Y', signed/unsigned mismatch", part 6/12.
...
Add static_cast when initializing unsigned integers with negative numbers (in order to obtain big values).
llvm-svn: 287826
2016-11-23 22:02:44 +00:00
Stephan T. Lavavej
562f28a6ed
[libcxx] [test] D27018: Fix MSVC warning C4018 "signed/unsigned mismatch", part 5/12.
...
Various changes:
test/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search.pass.cpp
Change M from unsigned to int. It's compared against "int x",
and we binary_search() for it within a vector<int>.
test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval.pass.cpp
test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval_param.pass.cpp
Add static_cast<unsigned> when comparing int to unsigned.
test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp
Change unsigned indices to int when we're being given int as a bound.
llvm-svn: 287825
2016-11-23 22:02:35 +00:00
Stephan T. Lavavej
73876facd5
[libcxx] [test] D27016: Fix MSVC warning C4018 "signed/unsigned mismatch", part 4/12.
...
Change "int j;" indices to "std::size_t j;".
Also, include <cstddef> when it wasn't already being included.
llvm-svn: 287824
2016-11-23 22:02:27 +00:00
Stephan T. Lavavej
afe99ae092
[libcxx] [test] D27015: Fix MSVC warning C4018 "signed/unsigned mismatch", part 3/12.
...
Change unsigned to int in parameters.
llvm-svn: 287823
2016-11-23 22:02:16 +00:00
Stephan T. Lavavej
a11d322f0d
[libcxx] [test] D27014: Fix MSVC warning C4018 "signed/unsigned mismatch", part 2/12.
...
Add static_cast<std::size_t> when comparing int to std::size_t.
Also, include <cstddef> when it wasn't already being included.
llvm-svn: 287822
2016-11-23 22:01:58 +00:00
Stephan T. Lavavej
e898b484f6
[libcxx] [test] D27013: Fix MSVC warning C4018 "signed/unsigned mismatch", part 1/12.
...
Change loop indices from int to std::size_t.
Also, include <cstddef> when it wasn't already being included.
llvm-svn: 287820
2016-11-23 22:01:19 +00:00
Shoaib Meenai
4304955545
[libc++] Remove unneeded visibility pragmas
...
The function definitions being guarded by the pragma were all static, so
they wouldn't be exported anyway. In any case, we should prefer the
visibility macros. No functional change.
Differential Revision: https://reviews.llvm.org/D26940
llvm-svn: 287768
2016-11-23 16:11:15 +00:00
Eric Fiselier
341c9dd9c4
Fix __hash_table::max_size() on 32 bit systems
...
llvm-svn: 287749
2016-11-23 09:16:12 +00:00
Casey Carter
ca1c5e0fb6
Don't "LIBCPP_ONLY(stuff;)" at namespace scope.
...
Differential review: https://reviews.llvm.org/D27029
llvm-svn: 287732
2016-11-23 01:44:53 +00:00
Eric Fiselier
55b31b4e69
[libcxx] Fix max_size() across all containers
...
Summary: The `max_size()` method of containers should respect both the allocator's reported `max_size` and the range of the `difference_type`. This patch makes all containers choose the smallest of those two values.
Reviewers: mclow.lists, EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D26885
llvm-svn: 287729
2016-11-23 01:18:56 +00:00
Eric Fiselier
80e66ac1d3
Add <variant> tests but disable them for libc++
...
llvm-svn: 287728
2016-11-23 01:02:51 +00:00