Commit Graph

537 Commits

Author SHA1 Message Date
Howard Hinnant 3c78ca07bc Partial Windows port by Ruben Van Boxem
llvm-svn: 140328
2011-09-22 19:10:18 +00:00
Howard Hinnant cf50df9d94 Fix test bugs found by David Chisnall
llvm-svn: 140271
2011-09-21 18:33:46 +00:00
David Chisnall 580eccb05a Fix locales used in re tests.
llvm-svn: 140265
2011-09-21 17:38:03 +00:00
David Chisnall 13bddcf1bc Remove undefines in cstdio test. Fix these properly rather than bodging the tests.
llvm-svn: 140264
2011-09-21 17:37:18 +00:00
David Chisnall ecccb1f868 More +.UTF-8 fixes.
llvm-svn: 140262
2011-09-21 17:35:42 +00:00
Howard Hinnant b996af1fe7 Fix failure found by David Chisnall
llvm-svn: 140255
2011-09-21 16:42:32 +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 71850c961d More fixes to the tests. Add UTF-8 encoding to all locales that don't specify one. Undefine some stdio.h macros that break the tests.
llvm-svn: 140252
2011-09-21 14:59:10 +00:00
David Chisnall b25f615c58 Fully-qualify some more locales in the tests...
llvm-svn: 140251
2011-09-21 14:48:49 +00:00
David Chisnall 1d9bdaa24d Don't check STREAMS error numbers on systems that don't implement the obsolete (as described in POSIX2008) XSI STREAMS extension.
llvm-svn: 140248
2011-09-21 12:23:11 +00:00
David Chisnall 8b053d5ec1 More locale cleanups. Fully specify locales in iostream tests.
llvm-svn: 140247
2011-09-21 12:09:17 +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
David Chisnall e36a15db17 Localisation test fixes to make the tests pass on FreeBSD, which does not provide shortened forms of the various locales (e.g. en_US, rather than en_US.UTF-8 / en_US.ISO{whatever}).
Reviewed by Howard Hinnant.

llvm-svn: 140242
2011-09-21 08:19:20 +00:00
Howard Hinnant c756bb3574 Chris Jefferson noted that vector iterator ownership can be transferred from source to target under move construction and move assignment. This commit makes that happen for debug mode.
llvm-svn: 140023
2011-09-19 16:34:29 +00:00
Howard Hinnant cdcfbf26dc Removed unneeded boost implementation of is_base_of
llvm-svn: 140014
2011-09-19 13:19:31 +00:00
David Chisnall 0a0f599f2c Enable __locale to work on FreeBSD.
llvm-svn: 140005
2011-09-18 19:23:04 +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 0695db06d7 The vector test suite now passes for no-debug, debug-lite and debug-regular
llvm-svn: 139930
2011-09-16 18:41:29 +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 55f2a50994 Address PR10909: http://llvm.org/bugs/show_bug.cgi?id=10909
llvm-svn: 139493
2011-09-12 14:15:45 +00:00
Howard Hinnant 8668139f36 Fix const correctness bug in __move_assign. Found and fixed by Ion Gaztañaga.
llvm-svn: 139032
2011-09-02 20:42:31 +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 00d8c245b2 Reimplemented much of <istream> such that single character extractions do not check to see if this is the last character in the stream and thus never set eofbit. This fixes http://llvm.org/bugs/show_bug.cgi?id=10817 . This fix requires a recompiled libc++.dylib to be fully implemented. The recompiled libc++.dylib is ABI compatible with that shipped on Lion.
llvm-svn: 138961
2011-09-01 21:02:45 +00:00
Howard Hinnant b1e3e0e59e __split_buffer should only require default constructible. Bug found and fixed by Jared Hoberock
llvm-svn: 138726
2011-08-28 15:21:29 +00:00
Dave Zarzycki 6137b627ab Merge the Apple branch into trunk
We will eventually rebranch for the next Apple release and when we do, we don't want to drop changes.

llvm-svn: 137940
2011-08-18 15:53:00 +00:00
Howard Hinnant e41124ade1 Don't move assign string::allocator_type when propagate_on_container_move_assignment is false.
llvm-svn: 137862
2011-08-17 20:36:18 +00:00
Howard Hinnant 052fd9349f Fix needle-in-haystack bug found by Walter Brown
llvm-svn: 137617
2011-08-15 17:22:22 +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 eaaf7f26df Correct misspelling:_LIBCPP_APPLE_STABLE_ABI -> _LIBCPP_STABLE_APPLE_ABI
llvm-svn: 136597
2011-07-31 17:16:32 +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 f622b58c83 Fixed PR10507 (http://llvm.org/bugs/show_bug.cgi?id=10507)
llvm-svn: 136595
2011-07-31 17:04:30 +00:00
Chandler Carruth 8fd6dc0df3 Revert r136547, r136545, and r136542 by removing slist.
This was checked in without review. It is not clear its reasonable to
include with libc++ at all, and needs discussion at a highlevel before
moving forward.

It's also completely lacking tests, and included several bugs in the
implementation.

llvm-svn: 136577
2011-07-30 21:10:18 +00:00
Chandler Carruth aa41ea2cc1 Revert r136546, which was submitted without review.
Original change:
Destruct elements of hash tables when removing individual entries from
the hash_table. I think this is the correct solution to PR10507, but I'm
not sure since this is a little bit cargo-culted. Howard, please review.

llvm-svn: 136576
2011-07-30 21:10:16 +00:00
Alexis Hunt bf78786db0 Add the missing default argument for the allocator and use a cleaner
implementation of previous().

llvm-svn: 136547
2011-07-30 00:47:53 +00:00
Alexis Hunt 9663c8cb15 Destruct elements of hash tables when removing individual entries from
the hash_table. I think this is the correct solution to PR10507, but I'm
not sure since this is a little bit cargo-culted. Howard, please review.

llvm-svn: 136546
2011-07-30 00:18:12 +00:00
Alexis Hunt 241bf43919 Oops. That last commit was from an earlier revision of the file and was
more than just a bit broken. This one should compile and run without
infinite loops.

llvm-svn: 136545
2011-07-30 00:06:52 +00:00
Alexis Hunt 1e846797dd Include an "implementation" if SGI's slist. This was quickly hacked
together to get it working with code, and is neither optimal
(erase(Iterator, Iterator) calculates the previous iterator twice,
rather than calculating the previous iterator of the first one, then
advancing it until the second is found) nor complete (splice() was not
implemented). Most of the implementation is borrowed from forward_list
via using-declarations.

llvm-svn: 136542
2011-07-29 23:42:36 +00:00
Alexis Hunt 8324378195 Explicitly invoke the size_type specialization of max and min. This
avoids bugs where, when the allocator's size_type was smaller than int,
the multiplication or division would cause integral promotions and, with
two different integer types as arguments, deduction of the template
arguments would fail.

llvm-svn: 136540
2011-07-29 23:31:58 +00:00
Alexis Hunt 8d2ed56644 Add a new hash class in __gnu_ext for the extension containers. There
are two motivations for this.

First, this allows users who are specializing __gnu_ext::hash to
continue doing so without changing their code.

Second, SGI specifies hash overloads for char* and const char* that
perform a hash of the string, not of the pointer.

In order to support this, the hashing code for string is factored out.

llvm-svn: 136539
2011-07-29 23:31:56 +00:00
Alexis Hunt fe473ae277 Add two missing members from the extension hash containers. The first is
the type name 'data_type', which is specified by the SGI spec as being
the correct type name for the mapped type. The second is an overload of
insert found in standard containers, taking an iterator as a 'hint'
(which we ignore in the standard containers as well). libstdc++'s
implementation includes these overloads, and they are needed to make
insert_iterator work (which I suspect is the real motivation for
including them in the standard containers).

The motivation for including these overloads of insert and leaving the
mapped_type typedef is to make it easier for clients to migrate to the
standard containers.

llvm-svn: 136538
2011-07-29 23:31:53 +00:00
Howard Hinnant 89bdcd7ef5 Configure to get along with 2.9 clang
llvm-svn: 136526
2011-07-29 21:35:53 +00:00
Howard Hinnant f4a797e3d2 Optimizing valarray::operator=(some-valarray-expression)
llvm-svn: 136291
2011-07-27 23:19:59 +00:00
Howard Hinnant 02364191d6 Fix PR10509: http://llvm.org/bugs/show_bug.cgi?id=10509
llvm-svn: 136247
2011-07-27 19:25:28 +00:00
Howard Hinnant 21f78d88e1 Fix PR10510: http://llvm.org/bugs/show_bug.cgi?id=10510
llvm-svn: 136232
2011-07-27 18:34:06 +00:00
Howard Hinnant 1dba445e43 http://llvm.org/bugs/show_bug.cgi?id=10469
llvm-svn: 135897
2011-07-24 23:59:50 +00:00
Howard Hinnant 520a61383c Optimization of string::operator< by M.E. O'Neill. Discussion in http://llvm.org/bugs/show_bug.cgi?id=10461
llvm-svn: 135893
2011-07-24 21:45:06 +00:00
Howard Hinnant 5b0bdc2043 http://llvm.org/bugs/show_bug.cgi?id=10461
llvm-svn: 135873
2011-07-24 15:07:21 +00:00
Howard Hinnant 7e6ca972c9 http://llvm.org/bugs/show_bug.cgi?id=10455
llvm-svn: 135854
2011-07-23 16:14:35 +00:00
Dave Zarzycki 6ab85f9e25 Test commit
llvm-svn: 135774
2011-07-22 17:08:57 +00:00