Commit Graph

248 Commits

Author SHA1 Message Date
Howard Hinnant
27e618efb6 I'm reverting one of the changes made to exception.cpp in r151717. I'm unsure what the change was trying to do, but it didn't do the right thing for __APPLE__. So instead of trying to guess what was intended, I'm just putting it back the way it was.
llvm-svn: 151727
2012-02-29 15:37:30 +00:00
David Chisnall
06af2bbb04 Add support files required for building on Solaris.
llvm-svn: 151721
2012-02-29 13:17:28 +00:00
David Chisnall
14c25b80e9 Solaris port. Currently sees around 200 test failures, mostly related to
Solaris not providing some of the locales that the test suite uses.

Note: This depends on an xlocale (partial) implementation for Solaris and a
couple of fixed standard headers.  These will be committed to a branch later
today.

llvm-svn: 151720
2012-02-29 13:05:08 +00:00
David Chisnall
e1da544e0b Some libcxxrt-compatibility cleanups (avoid defining things twice).
llvm-svn: 151717
2012-02-29 12:59:17 +00:00
Howard Hinnant
908d2bebaf At least temporarily move operator new/delete from the abi back to here. I'm having trouble reexporting it as a weak symbol.
llvm-svn: 151459
2012-02-25 21:36:01 +00:00
Howard Hinnant
f87873b3b3 Silence -Wmissing-field-initializers a little higher in the source.
llvm-svn: 150964
2012-02-20 16:51:43 +00:00
Howard Hinnant
7c24d8e70b Initialize all the fields of struct tm before passing it to strftime. One of the uninitialized fields, probably the pointer field tm_zone, was causing a segfault on linux. Patch contributed by Jeffrey Yasskin.
llvm-svn: 150929
2012-02-19 14:55:32 +00:00
Howard Hinnant
f95d9f0a3a Move typeinfos for exceptions in <stdexcept> to the abi
llvm-svn: 150835
2012-02-17 19:24:42 +00:00
Howard Hinnant
27c8f620ee Fix up narrowing conversions in switch statement.
llvm-svn: 150082
2012-02-08 19:15:06 +00:00
Howard Hinnant
23e4e4587f Make attributes on definition consistent with those on declaration.
llvm-svn: 149701
2012-02-03 18:31:43 +00:00
Howard Hinnant
2c9c6a579a Prepare for running on top of new libc++abi.
llvm-svn: 149634
2012-02-02 20:48:35 +00:00
Howard Hinnant
be745c8cce Explicitly convert int to future_errc. Fixes http://llvm.org/bugs/show_bug.cgi?id=11428
llvm-svn: 149630
2012-02-02 20:31:36 +00:00
Howard Hinnant
45146a12cf Fix memory leak in converting weak_ptr to shared_ptr
llvm-svn: 147298
2011-12-27 22:20:51 +00:00
Howard Hinnant
c206366fd7 Quash a whole bunch of warnings
llvm-svn: 145624
2011-12-01 20:21:04 +00:00
Howard Hinnant
e4383379ae More windows port work by Ruben Van Boxem
llvm-svn: 142732
2011-10-22 20:59:45 +00:00
Howard Hinnant
a892966218 de-tabbify
llvm-svn: 142237
2011-10-17 20:08:59 +00:00
Howard Hinnant
8909cdfff9 Windows port work by Ruben Van Boxem
llvm-svn: 140805
2011-09-29 20:33:10 +00:00
Howard Hinnant
0c06e58fae Windows patch work by Ruben Van Boxem
llvm-svn: 140781
2011-09-29 13:33:15 +00:00
Howard Hinnant
9978e3709f Attempted locale refactoring. _LIBCPP_LOCALE__L_EXTENSIONS now should be defined if one has all of the xxx_l() functions. I've defined this for apple, freebsd and win32. _LIBCPP_HAS_DEFAULTRUNELOCALE should be defined if there is a _DefaultRuneLocale. I've defined this for apple and freebsd. The block of code we're trying to migrate away from is now under #ifdef __linux__. I've tested only on OS X. I hope I haven't broken things too badly elsewhere. Please let me know.
llvm-svn: 140734
2011-09-28 23:39:33 +00:00
Howard Hinnant
3438889dec Work on Windows port by Ruben Van Boxem
llvm-svn: 140728
2011-09-28 21:39:20 +00:00
Howard Hinnant
920b56ca88 Another installment on debug mode. This addresses list. However this should be considered a temporary state. The API of the debug database and how vector and list use it, is unsatisfactory at the moment. It is both inefficient and overly verbose. I wanted to get this functionality checked in though. In the next day or so I'll refactor what is there in an attempt to streamline things.
llvm-svn: 140660
2011-09-27 23:55:03 +00:00
Howard Hinnant
dbe8111948 Work on Windows port by Ruben Van Boxem
llvm-svn: 140384
2011-09-23 16:11:27 +00:00
Howard Hinnant
3c78ca07bc Partial Windows port by Ruben Van Boxem
llvm-svn: 140328
2011-09-22 19:10:18 +00:00
Howard Hinnant
bae9fc983e Correct change to exception.cpp from r140245
llvm-svn: 140253
2011-09-21 15:12:26 +00:00
David Chisnall
89728139cb Fixes for FreeBSD, including some fairly obvious copy-and-paste errors.
libc++ now mostly works on FreeBSD with libcxxrt and this patch applied to the base system:

http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20110920/e666632c/xlocale-0001.obj

Summary of tests on FreeBSD:


****************************************************
Results for /root/libcxx/test:
using FreeBSD clang version 3.0 (trunk 135360) 20110717
Target: x86_64-unknown-freebsd9.0
Thread model: posix
with -std=c++0x -stdlib=libc++ -I/root/libcxx/include -L/root/libcxx/build/lib
----------------------------------------------------
sections without tests   : 1
sections with failures   : 48
sections without failures: 1015
                       +   ----
total number of sections : 1064
----------------------------------------------------
number of tests failed   : 145
number of tests passed   : 4179
                       +   ----
total number of tests    : 4324
****************************************************

(Many due to this clang version not supporting C++ atomics)

More fixes to follow...

llvm-svn: 140245
2011-09-21 08:39:44 +00:00
Howard Hinnant
c36bfc499b Doug Gregor pointed out some problems with debug mode enabled in one TU and not another. This patch helps detect those situations and offers improved error messages to help get debug mode enabled in more TU's when it is absolutely necessary to do so. Thanks Doug.
llvm-svn: 139933
2011-09-16 19:52:23 +00:00
Howard Hinnant
cec9af9ead Create multilevel debug mode
llvm-svn: 139913
2011-09-16 17:29:17 +00:00
Howard Hinnant
f554add54e Initial checkin for debug mode (version 2)
llvm-svn: 139711
2011-09-14 18:33:51 +00:00
Howard Hinnant
eaaf7f26df Correct misspelling:_LIBCPP_APPLE_STABLE_ABI -> _LIBCPP_STABLE_APPLE_ABI
llvm-svn: 136597
2011-07-31 17:16:32 +00:00
Howard Hinnant
89bdcd7ef5 Configure to get along with 2.9 clang
llvm-svn: 136526
2011-07-29 21:35:53 +00:00
Alexis Hunt
4084c9ebe5 Reapply 135035 with proper conditional inclusion, hopefully solving
issues with it.

llvm-svn: 135246
2011-07-15 05:40:33 +00:00
Howard Hinnant
93a16c0f37 http://llvm.org/bugs/show_bug.cgi?id=10353
llvm-svn: 135125
2011-07-14 01:34:46 +00:00
Howard Hinnant
88410049fa http://llvm.org/bugs/show_bug.cgi?id=10346
llvm-svn: 135045
2011-07-13 16:00:50 +00:00
Howard Hinnant
f6b7e20bc8 Reverted to 134947. Once I got into it, I discovered there were too many problems to fix in 135035.
llvm-svn: 135044
2011-07-13 15:48:16 +00:00
Alexis Hunt
8a02a632be Implement the __nolocale functions properly so that they will work on
all platforms. Unfortunately a lot of this remains conditionally
compiled so as not to break Apple's ABI.

The new _LIBCPP_LOCALE__L_EXTENSIONS macro can be defined on other
platforms that support _l suffixes for all functions in order to use
them.

llvm-svn: 135035
2011-07-13 06:40:50 +00:00
Howard Hinnant
25659e93c7 Toralf Niebuhr: This is just a tiny patch fixing some small (probably copy & paste) errors.
llvm-svn: 134843
2011-07-09 19:47:01 +00:00
Alexis Hunt
0081892d33 Don't assume that wctype produces a nice mask on all platforms. On
glibc, for instance, it's a const char *.

llvm-svn: 134787
2011-07-09 03:40:04 +00:00
Alexis Hunt
f023519770 Conditionally wrap the changes from r134781.
llvm-svn: 134783
2011-07-09 01:09:31 +00:00
Alexis Hunt
3f60bca9e9 Implement generalized table lookups for upper, lower, and character
traits.

To the best of my knowledge, this will not break the ABI for Apple.
However, it does introduce three publicly visible (although with
reserved name) functions that will fail to link against the just-shipped
Apple version of libc++. Since they are not used in any inline
functions, no actual breakage should occur.

If Howard doesn't want to put undefined functions (even internal ones)
into a header, they could be surrounded by additional conditional
compilation.

llvm-svn: 134781
2011-07-09 00:56:23 +00:00
Howard Hinnant
3aa229f7dc provide ~future_error() definition
llvm-svn: 134663
2011-07-08 00:04:40 +00:00
Alexis Hunt
e789755db7 Fix typo
llvm-svn: 134650
2011-07-07 22:45:07 +00:00
Howard Hinnant
11af28bdbd Fixing up some ABI issues
llvm-svn: 134639
2011-07-07 21:03:52 +00:00
Howard Hinnant
ce48a1137d _STD -> _VSTD to avoid macro clash on windows
llvm-svn: 134190
2011-06-30 21:18:19 +00:00
Howard Hinnant
15434707e4 Patch by Petteri Räty, http://llvm.org/bugs/show_bug.cgi?id=8992
llvm-svn: 134155
2011-06-30 14:21:55 +00:00
Howard Hinnant
b5d866d4a3 noexcept for Chapter 22 [localization].
llvm-svn: 132337
2011-05-31 15:34:58 +00:00
Howard Hinnant
d53d81522d noexcept for <chrono>.
llvm-svn: 132265
2011-05-28 18:34:36 +00:00
Howard Hinnant
3739fe79e5 noexcept for <memory>. I've added a few extension noexcept to: allocator_traits<A>::deallocate, allocaate<T>::deallocate, return_temporary_buffer, and default_delete<T>::operator()(T*) const. My rationale was: If a std-dicated noexcept function needs to call another std-defined function, that called function must be noexcept. We're all a little new to noexcept, so things like this are to be expected. Also included fix for broken __is_swappable trait pointed out by Marc Glisse, thanks Marc|. And fixed a test case for is_nothrow_destructible. Destructors are now noexcept by default|
llvm-svn: 132261
2011-05-28 14:41:13 +00:00
Howard Hinnant
a62f28994c Applied noexcept to everything in [diagnostics] (Chapter 19)
llvm-svn: 132137
2011-05-26 19:48:01 +00:00
Howard Hinnant
fafca58c58 Applied noexcept to everything in [language.support] (Chapter 18)
llvm-svn: 132129
2011-05-26 18:23:59 +00:00
Howard Hinnant
400b244339 Added [[noreturn]] attribute everywhere it should be
llvm-svn: 132125
2011-05-26 17:07:32 +00:00