| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Pass target name ("cxxabi") to target_link_libraries(cxx ...) to ensure
that linker is able to locate just-built libc++abi in the build tree,
instead of relying on "-lc++abi" linker flag.
llvm-svn: 214114
|
| |
|
|
|
|
| |
done at the correct size. A better solution, IMHO, would be to declare vector<bool>::__bits_per_word as 'size_type', rather than 'unsigned', but that's a possible ABI change.
llvm-svn: 214088
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This will detect if you are building libcxx in-tree and libcxxabi is
available. If so, it will default to using the in-tree libcxxabi by
setting LIBCXX_CXX_ABI to "libcxxabi", LIBCXX_LIBCXXABI_INCLUDE_PATHS to
"${CMAKE_SOURCE_DIR}/projects/libcxxabi/include" and will add "cxxabi"
as a proper dependency.
Patch by Russell Harmon.
llvm-svn: 214037
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: The polymorphic allocator implementation would greatly benefit by defining virtual functions in the dynlib instead of inline. In order to do that some types are going to have to be available outside of c++1y. This is the first step.
Reviewers: mclow.lists, EricWF
Reviewed By: EricWF
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4554
llvm-svn: 213889
|
| |
|
|
| |
llvm-svn: 213888
|
| |
|
|
| |
llvm-svn: 213887
|
| |
|
|
|
|
|
| |
Android's ctype implementation comes from openbsd, which for some reason
doesn't consider numbers to be hex digits.
llvm-svn: 213785
|
| |
|
|
|
|
| |
back it up at the moment; just comments
llvm-svn: 213768
|
| |
|
|
|
|
| |
Android's classic_locale begins at _ctype_ + 1.
llvm-svn: 213672
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
std::make_heap is currently implemented by iteratively applying a
siftup-type algorithm. Since sift-up is O(ln n), this gives
std::make_heap a worst case time complexity of O(n ln n).
The C++ standard mandates that std::make_heap make no more than O(3n)
comparisons, this makes our std::make_heap out of spec.
Fix this by introducing an implementation of __sift_down and switch
std::make_heap to create the heap using it.
This gives std::make_heap linear time complexity in the worst case.
This fixes PR20161.
llvm-svn: 213615
|
| |
|
|
| |
llvm-svn: 213547
|
| |
|
|
|
|
| |
assignment so that if the allocator move assignment throws, we aren't left with two objects pointing at the same memory. This is not a complete fix; I am unconvinced that a complete fix is possible. With this change in place, we will leak the old contents of the vector. LWG issue #2106, when adopted, will make this problem illegal. Thanks to Thomas Koeppe for the report and analysis.
llvm-svn: 213546
|
| |
|
|
|
|
| |
allocator. Thanks to Thomas Koeppe for the report
llvm-svn: 213269
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch adds the `<experimental/utility>` header as specified in the latest draft of the library fundamentals TS.
`<experimental/utility>` only contains `class erased_type`.
This patch also updates the documentation to list the `erased_type` class as "initial implementation complete".
Test Plan:
Three test cases where added:
1. Test that `_LIBCPP_VERSION` is defined.
2. Test that `<utility>` has been included.
3. Test that `erased_type` is in the correct namespace and is constexpr default constructible.
Reviewers: mclow.lists
Reviewed By: mclow.lists
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4510
llvm-svn: 213226
|
| |
|
|
| |
llvm-svn: 213225
|
| |
|
|
| |
llvm-svn: 213223
|
| |
|
|
| |
llvm-svn: 213222
|
| |
|
|
| |
llvm-svn: 213163
|
| |
|
|
|
|
|
|
|
|
|
| |
Mark the base classes for time_get_byname and time_get as _LIBCPP_TYPE_VIS_ONLY
rather than _LIBCPP_TYPE_VIS. These base classes are templated types and cannot
be stored with export dll storage.
Fixes compilation with _LIBCPP_DLL for Windows when the time_get and
time_get_byname classes are used.
llvm-svn: 213116
|
| |
|
|
|
|
| |
Albert Wong for the patch.
llvm-svn: 212727
|
| |
|
|
| |
llvm-svn: 212724
|
| |
|
|
| |
llvm-svn: 212723
|
| |
|
|
| |
llvm-svn: 212651
|
| |
|
|
|
|
| |
support (thanks to Richard for the suggestions). Update the tests to match this. Add <experimental/__config for experimental macros/etc to live.
llvm-svn: 212569
|
| |
|
|
|
|
| |
in 32-bit mode because they assumed that std::size_type and make_unsigned<ptrdiff_t>::type were always the same type. No change to libc++, just the tests.
llvm-svn: 212538
|
| |
|
|
|
|
| |
Also, make the tests pass under c++03
llvm-svn: 212185
|
| |
|
|
|
|
| |
std::function results in half-empty state' Thanks to Agustin Berge for the report, and for his and Eric Fiselier's work on a fix.
llvm-svn: 212070
|
| |
|
|
|
|
| |
to EricWF for the bug report and the fix.
llvm-svn: 212046
|
| |
|
|
| |
llvm-svn: 212017
|
| |
|
|
|
|
| |
intrinsics in 4.7 and later. No functionality change when using clang.
llvm-svn: 211755
|
| |
|
|
|
|
| |
Patch by Ryuta Suzuki
llvm-svn: 211629
|
| |
|
|
|
|
| |
bug #20092. Thanks to Agustín Bergé for the bug report and the fix.
llvm-svn: 211563
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 211191
|
| |
|
|
|
|
| |
This reverts commit 0bd40d6c3da6719fecf77038673d453ff1eab25b.
llvm-svn: 210857
|
| |
|
|
|
|
| |
in C++11 and 03, with reduced functionality (mostly in the area of constexpr)
llvm-svn: 210659
|
| |
|
|
|
|
|
| |
http://llvm.org/bugs/show_bug.cgi?id=18681
Patch by Ryuta Suzuki <oroppas gmail com>
llvm-svn: 210577
|
| |
|
|
|
|
| |
return void in C++11
llvm-svn: 210562
|
| |
|
|
|
|
| |
of refacoring in algorithm as well. Give them better names while we're at it. All of these are internal rotines; no visible functionality change.
llvm-svn: 210561
|
| |
|
|
|
|
| |
bits out on c++03, since it doesn't support u"" and U "" style strings.
llvm-svn: 210560
|
| |
|
|
| |
llvm-svn: 210558
|
| |
|
|
| |
llvm-svn: 210500
|
| |
|
|
|
|
| |
are constexpr, and a comparison predicate which counts how many times it's been called.
llvm-svn: 210381
|
| |
|
|
| |
llvm-svn: 210380
|
| |
|
|
|
|
| |
allows allocations and deallocations to be optimized out.
llvm-svn: 210211
|
| |
|
|
|
|
|
|
|
|
| |
Signals may result in nanosleep returning with only some of the
requested sleeping performed.
Utilize nanosleep's "time-remaining" out parameter to continue sleeping
when this occurs.
llvm-svn: 210210
|
| |
|
|
|
|
|
| |
The maximum alignment on arm is 8, not 16 like on x86. Use alignof(max_align_t)
to make the test work in both cases.
llvm-svn: 210195
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libc++ currently relies on undefined initialization order of global
initializers when using gcc:
1. __start_std_streams in iostream.cpp calls locale::id::_init, which assigns
an id to each locale::facet in an initializer
2. Every facet has a static locale::id id, whose constructor sets the facet's
id to 0
If 2 runs after 1, it clobbers the facet's assigned consecutive id, causing
exceptions to be thrown when e.g. running code like "cout << endl".
To fix this, let _LIBCPP_CONSTEXPR evaluate to "constexpr" instead of nothing
with gcc. locale::id's constructor is marked _LIBCPP_CONSTEXPR, which ensures
that it won't get an initializer that could potentially run after the
iostream.cpp initializer. (This remains broken when building with msvc.)
Also switch constexpr-specific code in bitset to use __SIZEOF_SIZE_T__ instead
of __SIZE_WIDTH__, because gcc doesn't define the latter.
Pair-programmed/debugged with Dana Jansens.
llvm-svn: 210188
|
| |
|
|
| |
llvm-svn: 210162
|
| |
|
|
|
|
|
|
|
|
| |
Make sure we appropriately retry calls to read if the return result is
less than what we asked for.
Additionally, check and handle IO errors: EINTR results in the read
operation getting restarted; other errors turn into exceptions.
llvm-svn: 210061
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
random_device::random_device(const string&) wrongly assumes that open
can only validly return a file descriptor greater than zero.
This results in random_device believing that it didn't successfully open
the device causing it to throw in it's constructor, this ends up leaking
a file descriptor.
The fix is simple, don't error on file descriptors which are zero.
llvm-svn: 210060
|