| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Android's classic_locale begins at _ctype_ + 1.
llvm-svn: 213672
|
|
|
|
| |
llvm-svn: 212724
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[syserr.errcat.objects]p4 specifies that
system_category().default_error_condition(ev) map to
error_condition(posv, generic_category()) if ev could map to a POSIX
errno.
Linux reserves up to and including 4095 for errno values, use this as a
bound.
This fixes syserr.errcat.objects/system_category.pass.cpp on Linux.
llvm-svn: 209795
|
|
|
|
| |
llvm-svn: 208869
|
|
|
|
|
|
|
|
|
| |
compatibility to libstdc++. Move the implementation into a header for
easier sharing with libc++abi. Merge a number of improvements from that
version. Provide a POD definition for <stdexcept>'s public use to avoid
cast dances. Discussed with Marshall Clow.
llvm-svn: 207695
|
|
|
|
|
|
| |
condition_variable::wait, call terminate() rather than throwing an error. Do this indirectly, by marking the call as 'noexcept'. This is better than just calling terminate() directly, because it gives a better error message on the console.
llvm-svn: 204778
|
|
|
|
|
|
|
|
|
|
| |
This is as straightforward as it sounds, a renamed from shared_mutex to
shared_timed_mutex.
Note that libcxx .dylib and .so files built with c++14 support need to
be rebuilt.
llvm-svn: 204078
|
|
|
|
| |
llvm-svn: 204077
|
|
|
|
|
|
| |
Change suggested by Joerg Sonnenberger!
llvm-svn: 199500
|
|
|
|
|
|
|
|
|
|
| |
The __sync_add_and_fetch() builtin parameter is volatile but clang has
'different' type checking and ends up accepting this code.
Undo the C++ cast from r198505 to get libc++/LLVM building with g++ while this
is investigated.
llvm-svn: 199494
|
|
|
|
|
|
| |
functionality change. Fixes 18291. Thanks to Nico for the bug report and the patch.
llvm-svn: 199400
|
|
|
|
|
|
| |
address. Restores the assembly of before r198504.
llvm-svn: 198698
|
|
|
|
| |
llvm-svn: 198505
|
|
|
|
|
|
|
|
|
|
| |
We should check defined(__clang__) before the usage of the
clang diagnostic pragmas.
The [-Wswitch] warning in src/future.cpp should be ignored.
As the result, the equivalent GCC pragma is added.
llvm-svn: 197314
|
|
|
|
| |
llvm-svn: 195144
|
|
|
|
|
|
| |
__EMSCRIPTEN__. If you're not using the PP symbol EMSCRIPTEN, then you should see no functionality change.
llvm-svn: 195136
|
|
|
|
| |
llvm-svn: 195045
|
|
|
|
|
|
|
|
|
|
|
| |
functions in src/support/win32/locale_win32.cpp and locale_win32.h,
calling upon vsnprintf for which there is a MingW correct alternative.
Note! __USE_MINGW_ANSI_STDIO is not modified in this patch. In order to
use the __mingw version it must be defined before including the MingW
headers.
llvm-svn: 195044
|
|
|
|
|
|
| |
namespace, since it's not part of C++14, but of an upcoming TS
llvm-svn: 194867
|
|
|
|
|
|
| |
change. PR17843
llvm-svn: 194432
|
|
|
|
|
|
| |
some 'unknown pragma' warnings when compiling under MSVC, and don't use the __sso_allocator under windows, b/c MSVC doesn't support aligned-by value parameters
llvm-svn: 193086
|
|
|
|
|
|
| |
warning about this in headers and to warn is the MSVC default. No functionality change.
llvm-svn: 192548
|
|
|
|
| |
llvm-svn: 192545
|
|
|
|
| |
llvm-svn: 192539
|
|
|
|
| |
llvm-svn: 192325
|
|
|
|
|
|
|
| |
Rather than try to protect the function behind a precise,
ever-changing #if expression, just inline it into every caller.
llvm-svn: 192077
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libsupc++ does not implement the dependent EH ABI and the
functionality it uses to implement std::exception_ptr (which it
declares as an alias of std::__exception_ptr::exception_ptr) is not
directly exported to clients. So we have little choice but to hijack
std::__exception_ptr::exception_ptr's (which fortunately has the
same layout as our std::exception_ptr) copy constructor, assignment
operator and destructor (which are part of its stable ABI), and its
rethrow_exception(std::__exception_ptr::exception_ptr) function.
Also, remove some out of date comments.
Differential Revision: http://llvm-reviews.chandlerc.com/D1826
llvm-svn: 192076
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Linking against libstdc++, rather than libsupc++, is probably better
for people who need to link against clients of libstdc++. Because
libsupc++ is provided only as a static library, its globals are not
shared between the static library and the copy linked into libstdc++.
This has been found to cause at least one test failure.
This also removes a number of symbols which were multiply defined
between libstdc++ and libc++, only when linking with libstdc++.
Differential Revision: http://llvm-reviews.chandlerc.com/D1825
llvm-svn: 192075
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The remaining multiple definitions were flushed out by attempting to
link libsupc++ and libc++ into the same executable with --whole-archive,
e.g.
clang++ -I../llvm/projects/libcxx/include -nodefaultlibs -Wl,--whole-archive lib/libc++.a /usr/lib/gcc/x86_64-linux-gnu/4.6/libsupc++.a -Wl,--no-whole-archive -lgcc -lgcc_s -lc -lpthread -lrt
(The same technique was used to flush out multiple definitions in
libstdc++.)
Differential Revision: http://llvm-reviews.chandlerc.com/D1824
llvm-svn: 192074
|
|
|
|
| |
llvm-svn: 192071
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
patch's intent is to make new.cpp compile using MS's cl.exe compiler without changing the meaning of anything for any other compiler.
The issue this patch seeks to address is that MS's compiler (cl.exe) doesn't support the __attribute__((__weak__)) or __atribute__((__visibility__("default")) syntax; so a solution must be found where cl.exe doesn't see this syntax.
This patch seeks to solve this problem by changing code patterned like this:
__attribute__((__weak__, __visibility__("default")))
void* operator new(size_t size, const std::nothrow_t&) _NOEXCEPT { /*snip*/; return p; }
to code like this:
_LIBCPP_WEAK
void* operator new(size_t size, const std::nothrow_t&) _NOEXCEPT { return p; }
Howard: Thanks for all the comments regarding the default visibility
tag on the definition. I agree it isn't needed, and that there are lots
of other places where it is missing. That being said, I'm not wanting
to rock the boat on that issue right now. So I've added it back to the
definition via _LIBCPP_FUNC_VIS. A later pass dedicated just to this
issue can bring things in to a consistent state one way or the other.
Note that we do not want to have the exact same attributes on the
declaration and defintion in this case. The declaration should not be
marked weak, whereas the definition should (which is what G M's patch
did). I've fully tested on OS X to ensure that the resultant attribute
syntax actually works.
llvm-svn: 192007
|
|
|
|
|
|
| |
which does not support #pragma visibility.
llvm-svn: 191988
|
|
|
|
|
|
| |
that compiler doesn't support #warning.
llvm-svn: 191980
|
|
|
|
|
|
|
| |
libsupc++ declares these constructors inline, so we won't necessarily
get a definition for them in the library.
llvm-svn: 191931
|
|
|
|
|
|
|
|
| |
libsupc++ in typeinfo.cpp, bringing it into agreement with
exception.cpp. This fixes link errors due to duplicate symbols from
this translation unit.
llvm-svn: 191397
|
|
|
|
| |
llvm-svn: 191148
|
|
|
|
| |
llvm-svn: 191127
|
|
|
|
| |
llvm-svn: 190857
|
|
|
|
| |
llvm-svn: 190837
|
|
|
|
|
|
| |
(invalid value for broken_promise).
llvm-svn: 190756
|
|
|
|
| |
llvm-svn: 190478
|
|
|
|
|
|
| |
during build.
llvm-svn: 189949
|
|
|
|
| |
llvm-svn: 189772
|
|
|
|
| |
llvm-svn: 189623
|
|
|
|
|
|
| |
it is worth. The extern templates will still be built into the dylib, mainly for ABI stability purposes. And the client can still turn these back on with a #define if desire. This fixes http://llvm.org/bugs/show_bug.cgi?id=17027. However there's no associated test for the test suite because http://llvm.org/bugs/show_bug.cgi?id=17027 needs mismatched dylib and headers to fire.
llvm-svn: 189610
|
|
|
|
| |
llvm-svn: 189273
|
|
|
|
| |
llvm-svn: 189140
|