Commit Graph

421 Commits

Author SHA1 Message Date
Douglas Gregor
6c669943b3 An rvalue reference cannot bind to an lvalue, so static_cast the
result of the __tuple_leaf::get() call to an rvalue reference when
returning from tuple's get().


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@124190 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-25 16:14:21 +00:00
Douglas Gregor
f9e1c7e367 Eliminate the C++0x-only is_convertible testing function that accepts
a cv-qualifier rvalue reference to the type, e.g.,

  template <class _Tp> char  __test(const volatile typename remove_reference<_Tp>::type&&);

The use of this function signature rather than the more
straightforward one used in C++98/03 mode, e.g.,

  template <class _Tp> char  __test(_Tp);

is broken in two ways:

  1) An rvalue reference cannot bind to lvalues, so is_convertible<X&,
  X&>::value would be false. This breaks two of the unique_ptr tests
  on Clang and GCC >= 4.5. Prior GCC's seem to have allowed rvalue
  references to bind to lvalues, allowing this bug to slip in.

  2) By adding cv-qualifiers to the type we're converting to, we get
  some incorrect "true" results for, e.g., is_convertible<const X&, X&>::value.





git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@124166 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-25 01:15:41 +00:00
Howard Hinnant
f83417b823 Chandler Carruth changed >> to > > in several places.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@124120 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-24 16:07:25 +00:00
Chandler Carruth
e76496ce46 Teach the Lit configuration to actually use the cxx0x setting when
constructing compile flags, and to link against the 'rt' library on
Linux for clock_gettime and friends.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@124052 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-23 01:05:20 +00:00
Howard Hinnant
5f5859c45b Add attribute to inlined member.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@123392 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-13 20:05:05 +00:00
Howard Hinnant
6fd4b669ca Fixing an ambiguity in variadics found by clang.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@123337 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-12 22:56:59 +00:00
Howard Hinnant
ac38bae75b fix guard
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@123269 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-11 20:02:45 +00:00
Howard Hinnant
52c4eb23e0 Two minor fixes: 1. Put integral_constant conversion to integral in even without constexpr support. 2. Add ios_base to <iosfwd>. The latter is being tracked by LWG 2026.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@123080 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-08 20:00:48 +00:00
Howard Hinnant
04240d90ef Reverting an old optimization that conflicts with the new allocator model, and causes some test casees to compile that shouldn't.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@122830 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-04 19:53:31 +00:00
Howard Hinnant
93c382bf45 Marshall Clow's fix for Bug 8421.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@122825 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-04 19:21:05 +00:00
Howard Hinnant
2d72b1e393 Effort to reduce the number of exported symbols
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@122057 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17 14:46:43 +00:00
Howard Hinnant
e48e36623b Reduced copying cost of tuple_cat from quadratic to linear.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121655 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-12 23:04:37 +00:00
Howard Hinnant
0e1493ec5e LWG 1385 [FCD] tuple_cat should be a single variadic signature (http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#1385). This issue is only in Ready status, meaning it is not official, but probably will be this March in Madrid. It was tentatively accepted in Batavia with the previso that Bill and I didn't have any problems implementing it. This is my part of that agreement.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121619 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-11 20:47:50 +00:00
Howard Hinnant
eee7698bac The implementation of the new definition of result_of (N3123) resulted in some test failures in [func.memfn] that I failed to previously notice. This corrects that mistake.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121600 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-11 00:05:19 +00:00
Michael J. Spencer
626916fc25 Add CMake build and fix major Linux blockers.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121510 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10 19:47:54 +00:00
Howard Hinnant
b8f787b188 Test adjustment for recent changes in allocator_traits
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121503 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10 19:22:37 +00:00
Howard Hinnant
f190e97885 This got accidentally removed
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121502 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10 19:22:00 +00:00
Howard Hinnant
31aaf55f4c N3158 Missing preconditions for default-constructed match_result objects
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121282 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-08 21:07:55 +00:00
Howard Hinnant
1b18a48e28 cleaning up...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121275 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-08 20:09:09 +00:00
Howard Hinnant
770d1c4ea7 After a long break to wait for the atomic spec to settle, this completes the library part of <atomic>. It currently won't even parse as it depends on the existence of the intrinsics specified at http://libcxx.llvm.org/atomic_design_a.html. Everything has been tested using fake intrinsics which have now been removed. As the intrinsics come online, the ATOMIC_* macros will need to be adjusted to reflect which operations are lock-free. These macros will probably need to be #ifdef'd for each supported platform.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121267 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-08 17:20:28 +00:00
Michael J. Spencer
c9f5d9fca6 test: Rename string_op+= to string_op_plus_equal. Windows git doesn't like it.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121265 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-08 17:06:47 +00:00
Howard Hinnant
d2f6afbfab atomics ...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121204 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 23:24:41 +00:00
Howard Hinnant
57e5e87323 atomics ...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121203 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 23:24:09 +00:00
Howard Hinnant
f02417b600 atomics ...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121202 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 23:20:28 +00:00
Howard Hinnant
91e2f26fec Work on <atomic> continues. The file size is actually sane now...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121181 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07 20:46:14 +00:00
Howard Hinnant
4777bf2799 Getting <atomic> warmed back up. We have a hopefully more stable spec now. And I believe the intrinsic spec at http://libcxx.llvm.org/atomic_design_a.html is still good.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121064 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-06 23:10:08 +00:00
Howard Hinnant
7a0248d2d7 Add a couple more std-qualifers.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121002 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-06 15:11:48 +00:00
Howard Hinnant
d42c4beeff oops, forgot std::
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120915 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04 19:56:43 +00:00
Howard Hinnant
1f970ad73a Fix up uses of new/terminate/unexpected handlers to use the new getters.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120914 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04 19:54:11 +00:00
Howard Hinnant
55ddb21dd4 Add typeinfo for char16_t, char32_t and nullptr.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120810 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-03 17:25:24 +00:00
Howard Hinnant
a445151f4a N3189 Observers for the three handler functions
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120712 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02 16:45:21 +00:00
Howard Hinnant
7de47902d0 Implemented N3194
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120458 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-30 20:23:32 +00:00
Howard Hinnant
ac417faebc Minor fixup in <ratio> and add optional support for shared_mutex and upgrade_mutex which must be opted into with #define _LIBCPP_SHARED_LOCK
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120258 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-28 19:41:07 +00:00
Howard Hinnant
d397d03651 Add template alias emulation to <ratio>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120098 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-24 17:05:06 +00:00
Howard Hinnant
c706565c88 Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120064 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 22:13:07 +00:00
Howard Hinnant
6051e24e45 Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120058 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 20:55:56 +00:00
Howard Hinnant
adaa6266fe Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120057 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 20:55:36 +00:00
Howard Hinnant
8771430346 Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120054 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 20:47:09 +00:00
Howard Hinnant
46ab5def62 Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120052 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 20:45:26 +00:00
Howard Hinnant
fa5043d878 Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120050 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 20:41:07 +00:00
Howard Hinnant
83b6979fa2 Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120047 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 20:29:54 +00:00
Howard Hinnant
59a5ddbbd1 Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120046 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 20:27:28 +00:00
Howard Hinnant
afff5aacd6 Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120045 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 20:26:48 +00:00
Howard Hinnant
17c3a81048 Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120043 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 20:25:10 +00:00
Howard Hinnant
5711e4daf0 Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120041 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 20:22:13 +00:00
Howard Hinnant
6587dfe980 Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120040 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 20:21:36 +00:00
Howard Hinnant
73d2f94f6b Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120036 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 19:52:19 +00:00
Howard Hinnant
091f2ab44f Update testsuite strucuture to latest draft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120029 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 19:15:49 +00:00
Howard Hinnant
6689564040 N3188 - Revision to N3113: Async Launch Policies (CH 36)
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120027 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 18:33:54 +00:00
Howard Hinnant
f8f852138f N3191: C++ Timeout Specification
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119909 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-20 19:16:30 +00:00