Commit Graph

72 Commits

Author SHA1 Message Date
Howard Hinnant f1e633c154 Michael van der Westhuizen: Patches for Linux. Fixes http://llvm.org/bugs/show_bug.cgi?id=14648.
llvm-svn: 172435
2013-01-14 17:07:27 +00:00
Howard Hinnant f8b24cf5f7 Dimitry Andric: When using libc++ headers on FreeBSD, in combination with -std=c++98,
-ansi or -std=c++03, the long long type is not supported.  So in this
case, several functions and types, like lldiv_t, strtoll(), are not
declared.

llvm-svn: 168610
2012-11-26 21:18:17 +00:00
Howard Hinnant cd47cbc7a4 Provide a way to disable use of extern templates in libc++. This is intended for the clients of libc++, not the libc++ build. The dylib should always contain the extern templates. To disable the client needs to put -D'_LIBCPP_EXTERN_TEMPLATE(...)=' on the command line.
llvm-svn: 167486
2012-11-06 21:08:48 +00:00
Howard Hinnant 54d333a601 Rename uses of _ and __ because these are getting stepped on by macros from other system code.
llvm-svn: 167038
2012-10-30 19:06:59 +00:00
Howard Hinnant 7ba8160360 Dimitry Andric: FreeBSD only: Add the C11 aligned_alloc to <cstdlib> and adjust the inclusion of quick_exit.
llvm-svn: 165882
2012-10-13 18:03:53 +00:00
Howard Hinnant f543a75be1 Holger Arnold: Correct the use and testing of __GNUC__ and __GNUC_MINOR__ in <__config>.
llvm-svn: 165151
2012-10-03 20:48:05 +00:00
Howard Hinnant 59fb5c6559 Due to a mistake on my own part, I need to burn some version numbers. This does not impact any of the implementation of libc++, and does not impact the ABI in any way.
llvm-svn: 164832
2012-09-28 17:42:25 +00:00
Howard Hinnant 324c084654 Bump _LIBCPP_VERSION to 1002
llvm-svn: 164700
2012-09-26 15:38:09 +00:00
Howard Hinnant a3b7a802cc In C++03 mode add an explicit conversion from int to the emulated class enum. Fixes a problem reported by C. Bergström.
llvm-svn: 162189
2012-08-19 17:14:47 +00:00
Richard Smith 535a86c3f8 libc++: switch from using _ATTRIBUTE(noreturn) (which conflicts with a
platform-provided macro on some systems) to _LIBCPP_NORETURN.

llvm-svn: 160773
2012-07-26 02:04:22 +00:00
Nuno Lopes 6317bfb26a mark operator new(std::nothrow) as noalias (aka __attribute__((malloc))
llvm-svn: 159359
2012-06-28 16:47:34 +00:00
Howard Hinnant 78b4015c1c Fix the new _ALIGNAS_TYPE per instructions supplied by Eli Friedman.
llvm-svn: 157765
2012-05-31 20:14:00 +00:00
Howard Hinnant bf33f5b292 Protect use of alignas against older versions of clang
llvm-svn: 157764
2012-05-31 19:31:14 +00:00
Howard Hinnant 788c9979d9 This is an initial commit of constexpr support as proposed by Richard Smith. This by no means completes constexpr support. Indeed, it hardly scratches the surface. All it does is lay the foundation in <__config> and changes those few places in the library that are already using that foundation.
llvm-svn: 153856
2012-04-02 00:40:41 +00:00
David Chisnall 5f13d66fb4 Make sure [at_]quick_exit is in std::
llvm-svn: 152717
2012-03-14 14:10:37 +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
Howard Hinnant f2f2d8b98d Modernize conversion to bool to the explicit bool conversion operator (library wide). This fixes http://llvm.org/bugs/show_bug.cgi?id=12058.
llvm-svn: 151088
2012-02-21 21:46:43 +00:00
Howard Hinnant 75689c1018 Fix http://llvm.org/bugs/show_bug.cgi?id=11428. Fix provided by Alberto Ganesh Barbati
llvm-svn: 145698
2011-12-02 19:36:40 +00:00
David Chisnall 5e8e0448c3 On FreeBSD, define a macro that causes the unimplemented C99 math.h functions to be declared. This prevents <cmath> users from being broken, unless they actually use the C++ wrappers that call the missing functions.
llvm-svn: 144501
2011-11-13 17:15:33 +00:00
Howard Hinnant 9563a09cee Windows port work by Ruben Van Boxem
llvm-svn: 143105
2011-10-27 16:24:42 +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 8bece6fe69 Windows port work by Ruben Van Boxem
llvm-svn: 142578
2011-10-20 12:49:21 +00:00
Howard Hinnant 073458b1ab Windows support by Ruben Van Boxem.
llvm-svn: 142235
2011-10-17 20:05:10 +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 3c78ca07bc Partial Windows port by Ruben Van Boxem
llvm-svn: 140328
2011-09-22 19:10:18 +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 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 5d7a6f31f7 Up version number by 1. This is a 'minor version' update.
llvm-svn: 138978
2011-09-01 23:13:01 +00:00
Howard Hinnant 54976f2619 Fixed PR10574: http://llvm.org/bugs/show_bug.cgi?id=10574
llvm-svn: 137522
2011-08-12 21:56:02 +00:00
Howard Hinnant 2425d53cd8 Change how _LIBCPP_HAS_NO_ADVANCED_SFINAE gets set.
llvm-svn: 136596
2011-07-31 17:10:44 +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 397d787642 Given that __underlying_type is now available in clang, implement
std::underlying_type.

llvm-svn: 135410
2011-07-18 18:37:21 +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 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
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
Howard Hinnant ce48a1137d _STD -> _VSTD to avoid macro clash on windows
llvm-svn: 134190
2011-06-30 21:18:19 +00:00
Douglas Gregor 64ec101eb6 Teach libc++ about the addressof() overloads it needs to work with
Objective-C Automatic Reference Counting, where Objective-C object
pointers can have several different qualifiers (__strong, __weak,
__autoreleasing, __unsafe_unretained). These addressof() overloads are
only provided in ARC mode, and the __weak variant is conditionalized
on having weak-reference support in the ARC runtime.

For historical reasons, Clang provides these definitions itself, and
defines the macro _LIBCPP_PREDEFINED_OBJC_ARC_ADDRESSOF to note when
it as done so. The code belongs here, and this redundancy will be
eliminated in the future.

Addresses <rdar://problem/9658274>.

llvm-svn: 133656
2011-06-22 22:17:44 +00:00
Howard Hinnant f5c91471a4 Add _ATTRIBUTE macro for gcc: Justin Hibbits
llvm-svn: 132334
2011-05-31 13:13:49 +00:00
Howard Hinnant 411d1bcc3b Turn on cxx_alias_templates support
llvm-svn: 132134
2011-05-26 19:07:54 +00:00
Howard Hinnant 400b244339 Added [[noreturn]] attribute everywhere it should be
llvm-svn: 132125
2011-05-26 17:07:32 +00:00
Howard Hinnant 3e71464d50 http://llvm.org/bugs/show_bug.cgi?id=9118
llvm-svn: 131296
2011-05-13 17:16:06 +00:00
Howard Hinnant 08ad63b580 Redid nothrow traits in terms of non-nothrow traits when noexcept is available
llvm-svn: 131198
2011-05-11 20:19:40 +00:00
Howard Hinnant 9d06c8c326 http://llvm.org/bugs/show_bug.cgi?id=9765
llvm-svn: 129910
2011-04-21 14:29:59 +00:00
Douglas Gregor 71711a673b Inline namespaces are always available in Clang. Rely on that without
testing via __has_feature, since __has_feature for C++0x features no
longer evaluates true in C++98/03 mode.

Also, eliminate the redundant using directive. Inline namespaces make
their members visible in the enclosing namespace automatically.

llvm-svn: 124293
2011-01-26 15:39:56 +00:00
Howard Hinnant c950e77d1d Effort to reduce the number of exported symbols
llvm-svn: 122057
2010-12-17 14:46:43 +00:00
Michael J. Spencer f5799be4a8 Add CMake build and fix major Linux blockers.
llvm-svn: 121510
2010-12-10 19:47:54 +00:00