Howard Hinnant
b0e4c9d01b
More work on debug mode for list.
...
llvm-svn: 178819
2013-04-05 00:18:49 +00:00
Howard Hinnant
b13fcad677
Somehow search_n never got tested, so of course it had a bug in it. This fixes http://llvm.org/bugs/show_bug.cgi?id=15667 .
...
llvm-svn: 178764
2013-04-04 15:40:48 +00:00
Howard Hinnant
ea48b6dcd0
Fix stupid but harmless type-o. Fixes http://llvm.org/bugs/show_bug.cgi?id=15657 .
...
llvm-svn: 178691
2013-04-03 20:29:45 +00:00
Howard Hinnant
1347d33451
The move / swap members were not correctly taking all of the possible states of the basic_stringbuf into account. Just rewrote these members. Test included. This fixes http://llvm.org/bugs/show_bug.cgi?id=15659 .
...
llvm-svn: 178690
2013-04-03 20:21:29 +00:00
Howard Hinnant
459448241a
Reference: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130325/077133.html
...
llvm-svn: 178581
2013-04-02 22:14:51 +00:00
Howard Hinnant
516487765a
The cmake script is failing to copy cxxabi.h to the right place because it was generating to destination path like so /include// and dstdir can legally be blank from my interpretation of the script, and this would then generate a path like libcxx/include// which is illegal.
...
llvm-svn: 178579
2013-04-02 21:33:01 +00:00
Howard Hinnant
575e4e3650
Richard Smith: It was pointed out to me off-list that libc++'s non-compiler-builtin
...
implementation of std::is_polymorphic does this:
template <class _Tp> struct __is_polymorphic1 : public _Tp {};
... and that g++ rejects this if _Tp has an inaccessible virtual destructor
(because __is_polymorphic1<_Tp> would have a deleted virtual destructor
overriding _Tp's non-deleted destructor). Clang was failing to reject this;
I've fixed that in r178563, but that causes libc++'s corresponding test
case to fail with both clang and gcc when using the fallback
implementation. The fallback code also incorrectly rejects final types.
The attached patch fixes the fallback implementation of is_polymorphic; we
now use dynamic_cast's detection of polymorphic class types rather than
trying to determine if adding a virtual function makes the type larger:
enable_if<sizeof((_Tp*)dynamic_cast<const volatile
void*>(declval<_Tp*>())) != 0, ...>
Two things of note here:
* the (_Tp*) cast is necessary to work around bugs in Clang and g++ where
we otherwise don't instantiate the dynamic_cast (filed as PR15656)
* the 'const volatile' is here to treat is_polymorphic<cv T> as true for a
polymorphic class type T -- my reading of the standard suggests this is
incorrect, but it matches our builtin __is_polymorphic and gcc
llvm-svn: 178576
2013-04-02 21:25:06 +00:00
Howard Hinnant
70e19bd31e
Some debug test cases for list.
...
llvm-svn: 178565
2013-04-02 19:53:32 +00:00
Howard Hinnant
ad36fe5c19
Reference: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130325/077132.html
...
llvm-svn: 178545
2013-04-02 15:48:56 +00:00
Howard Hinnant
39e9506a1e
Reference: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130325/077131.html
...
llvm-svn: 178544
2013-04-02 15:46:31 +00:00
Howard Hinnant
cf1dc8d39e
Test case was forming the wrong limits when size_t != unsigned long.
...
llvm-svn: 178370
2013-03-29 21:22:22 +00:00
Howard Hinnant
9cb970074f
Bruce Mitchener, Jr.: Port to emscripten. Fixes http://llvm.org/bugs/show_bug.cgi?id=15624 .
...
llvm-svn: 178354
2013-03-29 18:27:28 +00:00
Howard Hinnant
84718fde7a
The 3rd test in shrink_to_fit.pass.cpp can't possibly pass if exceptions are disabled, so #ifdef'ing out the test.
...
llvm-svn: 178350
2013-03-29 17:20:04 +00:00
Howard Hinnant
97b8ebe600
I believe debug mode for vector<T> (T != bool) is complete. If anyone sees anything more they would like to see on it, please let me know. Debug mode is activated by compiling with -D_LIBCPP_DEBUG2=1. Eventually _LIBCPP_DEBUG2 will be renamed to just _LIBCPP_DEBUG.
...
llvm-svn: 178288
2013-03-28 20:35:29 +00:00
Howard Hinnant
e00e6f23d3
Fix a few warnings/errors for compiling with -fno-exceptions.
...
llvm-svn: 178267
2013-03-28 18:56:26 +00:00
Howard Hinnant
b3adefc34c
Second try at r178075. The llvm breakage has been fixed by r178240.
...
llvm-svn: 178253
2013-03-28 17:44:32 +00:00
Howard Hinnant
a4d35ce2bf
Add missing #ifndef _LIBCPP_NO_EXCEPTIONS around throw in include/thread.
...
llvm-svn: 178237
2013-03-28 15:00:04 +00:00
Daniel Dunbar
15eaebea15
Revert r178075, "Tighten up the iterator requirements ...", it breaks LLVM
...
bootstrap with libc++.
llvm-svn: 178116
2013-03-27 04:10:25 +00:00
Howard Hinnant
5a13d8dcea
Tighten up the iterator requirements for the vector member templates. This is especially important for the constructors so that is_constructible<vector<T>, I, I> gives the right answer when T can not be constructed from *I. Test case included for this latter point.
...
llvm-svn: 178075
2013-03-26 21:40:54 +00:00
Howard Hinnant
cd4a9fd301
Another vector debug mode test, and a static test on Allocator::value_type. This partially addresses http://llvm.org/bugs/show_bug.cgi?id=15576 .
...
llvm-svn: 178064
2013-03-26 19:04:56 +00:00
Howard Hinnant
1d8a5164b4
More vector debug tests.
...
llvm-svn: 178033
2013-03-26 15:45:56 +00:00
Marshall Clow
a6d24cc19d
Fixed race conditions in thread tests; exposed by UBSan
...
llvm-svn: 178029
2013-03-26 15:28:33 +00:00
Howard Hinnant
ea95898f29
Simply debug mode tests per Dmitri Gribenko's suggestion.
...
llvm-svn: 178026
2013-03-26 14:28:25 +00:00
Howard Hinnant
d9db9f90fb
Need one more swap overload for swapping two lvalue vector<bool>::reference's.
...
llvm-svn: 178016
2013-03-26 13:48:57 +00:00
Howard Hinnant
ea1bbbd135
Added debug tests for indexing, pop_back and both forms of erase. Added an improved error message for erasing a single element with end().
...
llvm-svn: 177929
2013-03-25 22:12:26 +00:00
Howard Hinnant
b14037be89
Remove some erroneous code I was using to debug debug mode.
...
llvm-svn: 177908
2013-03-25 20:46:07 +00:00
Howard Hinnant
2d752fc2f9
Debug mode tests for vector::front and back.
...
llvm-svn: 177904
2013-03-25 20:31:25 +00:00
Howard Hinnant
35b3b54548
More vector::iterator debug mode tests. Run by adding to OPTIONS -D_LIBCPP_DEBUG2=1.
...
llvm-svn: 177897
2013-03-25 20:03:19 +00:00
Howard Hinnant
92bd7c0337
Debug mode: learning to crawl. I need to set up some tests that actually test that the debug mode is working, but that won't cause problems when debug mode isn't on. This is my first prototype of such a test. It should call std::terminate() because it's comparing iterators from different containers. And std::terminate() is rigged up to exit normally. If debug mode fails, and doesn't call terminate, then the program asserts. The test is a no-op if _LIBCPP_DEBUG2 is not defined or is defined to be 0.
...
llvm-svn: 177892
2013-03-25 19:29:35 +00:00
Howard Hinnant
a60ae88db2
Marshall Clow found some divide-by-zero warnings with UBSan in rand's binomial_distribution test. This eliminates the divide-by-zeros and describes in comments the numerical difficulties the test is having. Each of the problematic tests are exploring edge cases of the distribution.
...
llvm-svn: 177826
2013-03-23 19:29:45 +00:00
Howard Hinnant
65a87ccdbf
This is a start at making the libc++ test suite friendlier to the -fnoexceptions flag. Although this is not a complete solution, it does reduce the number of test failures on OS X from 467 to 128 on OS X when -fno-exceptions is enabled, and does not impact the number of failures at all when -fno-exceptions is not enabled. The bulk of this code was donated anonymously.
...
llvm-svn: 177824
2013-03-23 17:27:16 +00:00
Howard Hinnant
7c5b88b134
Test cleanup with respect to use of deprecated tmpnam function. Also Windows port for these tests to use _tempnam. The bulk of this patch was donated anonymously. I've tested it on OS X and accept responsibility for it. If I've broken anyone's platform by switching from tmpnam to mktemp for the generation of temporary file names, just let me know. Should be easy to fix in test/support/platform_support.h
...
llvm-svn: 177755
2013-03-22 20:05:40 +00:00
Marshall Clow
c962cdf8a5
Fix buffer read overflow in money_get::do_get(). Found by UBSan
...
llvm-svn: 177694
2013-03-22 02:14:40 +00:00
Marshall Clow
1c2c986796
Fix undefined behavior in syntax_option_type::operator~ and match_flag_type::operator./a.out Found by UBSan
...
llvm-svn: 177693
2013-03-22 02:13:55 +00:00
Marshall Clow
761b5cf087
Fix bug in test; found by AddressSanitizer
...
llvm-svn: 177464
2013-03-20 00:01:48 +00:00
Howard Hinnant
4bb98d0917
Marshall Clow found this memory problem in strstream using -fsanitize=address on the test suite.
...
llvm-svn: 177452
2013-03-19 22:16:57 +00:00
Howard Hinnant
591ebe3cbb
This is an optimization which produces improved launching time. There should be no functionality change. Clients should see no ABI differences.
...
llvm-svn: 177443
2013-03-19 21:34:48 +00:00
Marshall Clow
1c00ce5070
Fix bug in test; found by AddressSanitizer
...
llvm-svn: 177355
2013-03-18 23:39:36 +00:00
Marshall Clow
69e76f80e2
Removed raw references to __sun__, __FreeBSD__, __GLIBC__ and __linux__; now just check to see if they are defined.
...
llvm-svn: 177310
2013-03-18 19:34:07 +00:00
Marshall Clow
7415c8b171
Removed raw references to _MSC_VER; now just check to see if it is defined.
...
llvm-svn: 177304
2013-03-18 18:20:48 +00:00
Marshall Clow
b56e8587af
Removed raw references to __APPLE__; now just check to see if it is defined.
...
llvm-svn: 177297
2013-03-18 17:45:34 +00:00
Marshall Clow
91907cbe82
Removed raw references to _WIN32; now just check to see if it is defined.
...
llvm-svn: 177291
2013-03-18 17:04:29 +00:00
Howard Hinnant
5efca64dd9
This should be nothing but a load-time optimization. I'm trying to reduce load time initializers and this is a big one. No visible functionality change intended.
...
llvm-svn: 177212
2013-03-16 00:17:53 +00:00
Marshall Clow
928f65a8aa
Updated link to Marshall's instructions
...
llvm-svn: 177099
2013-03-14 19:00:34 +00:00
Howard Hinnant
d70e6570fd
Some forward-looking and optimistic documentation.
...
llvm-svn: 177093
2013-03-14 18:37:48 +00:00
Howard Hinnant
41801f14ed
This SO question: http://stackoverflow.com/questions/15344402/how-can-i-read-a-0xff-in-a-file-with-libc-istream-iterator/15347225#15347225 highlighted the lack of a cast in the implementation of std::cin. Added. I unfortunately don't have a test case to add to the suite since this bug only shows itself when using std::cin. The current testsuite setup does not have a way a good way to test std::cin.
...
llvm-svn: 176822
2013-03-11 19:53:48 +00:00
Howard Hinnant
7e4844b353
Parsing floating point numbers with very long precision was broken, and this patch fixes it. This fixes http://llvm.org/bugs/show_bug.cgi?id=15445 .
...
llvm-svn: 176711
2013-03-08 19:06:24 +00:00
Howard Hinnant
c60bf548c5
Albert Wong: definition for regex_traits<_CharT>::__regex_word.
...
llvm-svn: 176640
2013-03-07 19:38:08 +00:00
Howard Hinnant
ead480d30a
Change _LIBCPP_TYPE_VIS to use __type_visibility__(default) instead of __visibility__(default) when available. This change makes just the type_info visible so that types like vectors and strings can be used as exception objects across dylib boundaries even when hidden visibility is specified globally (at the command line), and yet this allows clients to hide the member functions of things like vector and string (with global visibility commands).
...
llvm-svn: 176639
2013-03-07 19:25:03 +00:00
Howard Hinnant
6e41256f68
No functionality change at this time. I've split _LIBCPP_VISIBLE up into two flags: _LIBCPP_TYPE_VIS and _LIBCPP_FUNC_VIS. This is in preparation for taking advantage of clang's new __type_visibility__ attribute.
...
llvm-svn: 176593
2013-03-06 23:30:19 +00:00
Howard Hinnant
65f58f3fe8
Have basic_istream::read call sgetn intead of sbumpc individual characters. This addresses http://llvm.org/bugs/show_bug.cgi?id=15427 .
...
llvm-svn: 176573
2013-03-06 19:27:56 +00:00
Howard Hinnant
3fb6c6e50d
Correct silly type-o. Thanks Richard.
...
llvm-svn: 176568
2013-03-06 18:16:12 +00:00
Howard Hinnant
53b9ee061f
The bitset(unsigned long long) constructor was broken by the constexpr additions only on 32 bit platforms. Fixed. This addresses http://llvm.org/bugs/show_bug.cgi?id=15444 .
...
llvm-svn: 176559
2013-03-06 17:30:26 +00:00
Howard Hinnant
5b22e99e77
Michael van der Westhuizen: correction to the libcxx build instructions when built with libcxxrt on Linux.
...
llvm-svn: 176093
2013-02-26 16:27:55 +00:00
Howard Hinnant
a9f698009f
Alexey Samsonov: #ifdefs out undefined function in static build of libc++ w/o RTTI.
...
llvm-svn: 176026
2013-02-25 15:50:36 +00:00
Howard Hinnant
c0c9748c11
Constrain bind operator()() to not exist if the call is not valid. Fixes http://llvm.org/bugs/show_bug.cgi?id=15295 .
...
llvm-svn: 175774
2013-02-21 18:16:55 +00:00
David Chisnall
8b6a4de64a
Fix a bug in mutex_try_to_lock. This was previously trying to unlock a mutex that it didn't own, causing an assertion failure in mutex.cpp. The issue was that the unique_lock went out of scope, releasing the lock on m, then m.unlock() was called on an already-unlocked mutex.
...
This change removes the spurious m.unlock() call.
If this test was previously passing for anyone with assertions enabled, then they should investigate bugs in their pthread implementation, as pthread_unlock() should not return 0 if the mutex is currently unlocked.
llvm-svn: 175506
2013-02-19 11:28:45 +00:00
Howard Hinnant
65af0388b9
Bruce Mitchener: Minor typo fixes.
...
llvm-svn: 175274
2013-02-15 15:37:50 +00:00
Daniel Dunbar
62b943935d
[tests] Add support for a link_flags lit parameter.
...
- This is useful for testing with custom ABI libraries.
- Patch by Michael van der Westhuizen.
llvm-svn: 174997
2013-02-12 19:28:51 +00:00
Daniel Dunbar
496f1765a2
[tests] Another batch of timeout increases.
...
llvm-svn: 174902
2013-02-11 21:04:34 +00:00
Howard Hinnant
af00dc0420
Michael van der Westhuizen: Update instructions for building on Linux.
...
llvm-svn: 174733
2013-02-08 19:10:36 +00:00
Howard Hinnant
50232e50d8
Add Michael van der Westhuizen to CREDITS.TXT
...
llvm-svn: 174732
2013-02-08 19:08:06 +00:00
Howard Hinnant
0e2f292a30
Michael van der Westhuizen: update to CMake.
...
llvm-svn: 174731
2013-02-08 19:04:53 +00:00
Daniel Dunbar
ceb47bb06d
[tests] Another batch of timeout increases.
...
llvm-svn: 174726
2013-02-08 18:26:55 +00:00
Daniel Dunbar
76efb57666
[tests] Add back stdc macros I accidentally refactored out.
...
- Patch by Michael van der Westhuizen:
--
r174404 accidentally removed stdc format, limit and constant macros from the Linux test runner logic. This small patch re-adds the macros.
Making this change fixes the following tests on Linux:
- depr/depr.c.headers/inttypes_h.pass.cpp
- depr/depr.c.headers/stdint_h.pass.cpp
- input.output/file.streams/c.files/cinttypes.pass.cpp
- language.support/cstdint/cstdint.syn/cstdint.pass.cpp
--
llvm-svn: 174722
2013-02-08 17:41:28 +00:00
Daniel Dunbar
577e696425
[tests] Increase a bunch of wait limits.
...
- Basically I just ran the thread tests many many times on a busy machine and
bumped the timeouts whenever I hit a test failure.
- This is obviously subpar, but is the best I can do without the tests being
rewritten to not depend on arbitrary timeouts.
llvm-svn: 174721
2013-02-08 17:41:19 +00:00
Marshall Clow
b6e5f854f5
Change the 'result_type' from unsigned to 'uint_fast32_t'. This eliminates truncation warnings on Linux
...
llvm-svn: 174669
2013-02-07 22:12:02 +00:00
Marshall Clow
0749262a11
Belt and suspenders when calling sysconf
...
llvm-svn: 174642
2013-02-07 18:48:09 +00:00
Marshall Clow
63f700e4d1
Another libc++ warning suppression on Linux; no functionality change
...
llvm-svn: 174637
2013-02-07 17:37:58 +00:00
Marshall Clow
d58e0f5505
More libc++ warning suppression on Linux; no functionality change
...
llvm-svn: 174636
2013-02-07 17:20:56 +00:00
Howard Hinnant
aba500d633
Revert accidental check-in. These changes are probably good, but premature at this point.
...
llvm-svn: 174625
2013-02-07 15:31:44 +00:00
Howard Hinnant
804f9116e5
Michael van der Westhuizen: The attached patch add support for building against libc++abi and libcxxrt to CMake builds of libc++.
...
Usage (with the appropriate CC and CXX environment variables) is:
$ cmake -DLIBCXX_CXX_ABI=libcxxabi '-DLIBCXX_LIBCXXABI_INCLUDE_PATHS=/home/michael/libcxxabi/include' ../libcxx
and:
$ cmake -DLIBCXX_CXX_ABI=libcxxrt '-DLIBCXX_LIBCXXRT_INCLUDE_PATHS=/home/michael/libcxxrt/src' ../libcxx
llvm-svn: 174623
2013-02-07 15:27:39 +00:00
Marshall Clow
eb159ee704
Clean up some warnings for Linux build; No functionality change
...
llvm-svn: 174611
2013-02-07 14:22:51 +00:00
Daniel Dunbar
bdd4ec71db
[build/Darwin] Use the correct libc++abi reexport list.
...
- This updates the build script to match the change originally in r149634, so
that we re-export symbols from libc++abi appropriately.
llvm-svn: 174563
2013-02-07 00:24:19 +00:00
Daniel Dunbar
6bd3374de2
[build] Detabify.
...
llvm-svn: 174562
2013-02-07 00:24:17 +00:00
Howard Hinnant
d3d4356f6e
Marcin Zalewski: Change the name of a template parameter in __copy_backward from _InputIterator to _BidirectionalIterator to better document the intent of the algorithm.
...
llvm-svn: 174544
2013-02-06 21:03:39 +00:00
Howard Hinnant
584a65befd
Give a lot more timing latitude to some of the timing tests. Busy buildbots are hitting the timing limits too often.
...
llvm-svn: 174539
2013-02-06 20:25:56 +00:00
Daniel Dunbar
05abe9372b
[tests] Infer the cxx_under_test (as clang++).
...
- This is a reasonable default, and makes testing just work with no required
parameters.
- Add notes on all of the inferred or default values.
llvm-svn: 174538
2013-02-06 20:24:23 +00:00
Daniel Dunbar
5178942ded
[tests] Change test default to run against locally built library.
...
llvm-svn: 174528
2013-02-06 17:47:08 +00:00
Daniel Dunbar
d2d614cd84
[tests] Enable use_system_lib support on Linux.
...
- Patch by Michael van der Westhuizen.
llvm-svn: 174527
2013-02-06 17:45:53 +00:00
Daniel Dunbar
434fb1f6d5
[tests] One last batch of XFAILs, for tests using new symbols added to libc++.
...
- As of this commit, the test suite should now fully pass on both darwin11 and
darwin12 when testing against either a locally built libc++ or the system libc++.
llvm-svn: 174478
2013-02-06 00:59:06 +00:00
Daniel Dunbar
76ff8b54b3
[build] Create the link for the final library install name in the lib dir.
...
- Otherwise, we never were actually linking against the right library when
building the test applications.
llvm-svn: 174470
2013-02-06 00:04:54 +00:00
Daniel Dunbar
ba65d61767
[tests] Accept XFAIL arguments that match any part of a feature.
...
llvm-svn: 174469
2013-02-06 00:04:52 +00:00
Daniel Dunbar
36860df355
[tests] XFAIL some locale tests that don't seem to work on any Darwin.
...
llvm-svn: 174459
2013-02-05 22:51:20 +00:00
Daniel Dunbar
b6354a0767
[tests] If no explicit target triple is given, try to infer it.
...
llvm-svn: 174454
2013-02-05 22:28:03 +00:00
Daniel Dunbar
a563f32c6a
[tests] Mark another stream input expected failure (with system libc++).
...
llvm-svn: 174453
2013-02-05 22:21:52 +00:00
Daniel Dunbar
d0f05fb1b7
[tests] Mark another stream input expected failure (with system libc++).
...
llvm-svn: 174452
2013-02-05 22:10:28 +00:00
Daniel Dunbar
5ce9a5358b
[tests] Mark some string.conversions expected failures (with system libc++).
...
llvm-svn: 174451
2013-02-05 22:10:27 +00:00
Daniel Dunbar
1a7f7bc6bf
[tests] XFAIL a few things that require libc (?) support missing on Darwin.
...
llvm-svn: 174450
2013-02-05 22:10:25 +00:00
Daniel Dunbar
d15f013dc2
[tests] Mark some istream.unformatted expected failures (with system libc++).
...
llvm-svn: 174444
2013-02-05 21:43:32 +00:00
Daniel Dunbar
582c97defa
[tests] Add an available feature that combines the triple and use_system_lib.
...
- This is so that we can easily write XFAIL markers for tests that are known
to fail with versions of libc++ as were shipped with a particular triple.
llvm-svn: 174443
2013-02-05 21:43:30 +00:00
Daniel Dunbar
f51f0319bb
[tests] Add support for REQUIRES and XFAIL lines in libc++ tests.
...
- We parse up to the first non-empty non-comment (C++ style) line, otherwise
the format and semantics match what is used for LLVM/Clang tests.
- For now, the only interesting thing to test against is a user supplied
target_triple test parameter.
llvm-svn: 174440
2013-02-05 21:03:25 +00:00
Daniel Dunbar
8495871807
[tests] Add a 'use_system_lib' parameter.
...
- This controls whether to execute against the locally built library or
not. The default is currently True which maps to what was already being done
by default.
- I'd appreciate it if someone can implement the proper handling of this flag
on linux, I no longer remember the details of its .so handling.
llvm-svn: 174404
2013-02-05 18:03:49 +00:00
Howard Hinnant
2446649c1e
Saleem Abdulrasool: If errno is defined as volatile int, the qualifier differences can cause
...
template typename deductions on swap<> (used in string.cpp). Use
decltype(errno) to replicate the type and qualifier information for holding the
errno value. Because errno is expected to be assignable, there is no need to
use typename std::remove_const<decltype(errno)>::type to hold the value.
llvm-svn: 173172
2013-01-22 17:26:08 +00:00
Howard Hinnant
f55c0db8b5
Saleem Abdulrasool: __terminate_handler and __unexpected_handler are defined but not used when
...
building against libsupc++ as the functions for which they are used are provided
by libsupc++. Simply preprocess them away when building against libsupc++.
llvm-svn: 173165
2013-01-22 14:48:10 +00:00
Howard Hinnant
2ac1ae6150
Saleem Abdulrasool: Ensure that __GLIBCXX__ is defined when building with libsupc++.
...
llvm-svn: 173164
2013-01-22 14:44:06 +00:00
Howard Hinnant
ead15d1f95
Implement the ATOMIC_*_LOCK_FREE macros.
...
llvm-svn: 173084
2013-01-21 20:39:41 +00:00
Howard Hinnant
8d3e797444
Donated anonymously: This enables GCC 4.8.0 to build libc++.
...
llvm-svn: 173060
2013-01-21 17:26:55 +00:00
Howard Hinnant
d27745e4fb
Make a few tests optimization-proof. These tests were failing under -O3 because the optimizer was eliminating the call to new.
...
llvm-svn: 172631
2013-01-16 17:56:06 +00:00
Howard Hinnant
3d7eb2f806
Optimize basic_ostream::write by having it call sputn instead of sputc.
...
llvm-svn: 172542
2013-01-15 17:22:03 +00:00
Howard Hinnant
980e7e7402
Make <cmath> classification macros work with integral types.
...
llvm-svn: 172461
2013-01-14 20:56:22 +00:00
Howard Hinnant
2153d69672
Fix a race in the construction of future. This fixes http://llvm.org/bugs/show_bug.cgi?id=14934 .
...
llvm-svn: 172456
2013-01-14 20:01:24 +00:00
Howard Hinnant
1afbabab32
Fix string conversions functions to throw out_of_range properly. Fixes http://llvm.org/bugs/show_bug.cgi?id=14919 .
...
llvm-svn: 172447
2013-01-14 18:59:43 +00:00
Howard Hinnant
3778f27b23
Michael van der Westhuizen: Improve support for testing on Linux. Fixes http://llvm.org/bugs/show_bug.cgi?id=14892 .
...
llvm-svn: 172436
2013-01-14 17:12:54 +00:00
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
8d9aec8802
Fix exception safety bug in vector::push_back
...
llvm-svn: 172250
2013-01-11 20:36:59 +00:00
Marshall Clow
4476100a2f
Made test output iterators have value_type of 'void'; matches ones in library
...
llvm-svn: 171980
2013-01-09 17:20:02 +00:00
Marshall Clow
322270842c
Move common header files into a 'support' directory; make 'testit' include -I to that directory; rename 'iterators.h' to 'iterator_test.h'; remove hard-coded paths to include files from more than 350 source files
...
llvm-svn: 171594
2013-01-05 03:21:01 +00:00
Howard Hinnant
114676622f
atomic_bool was missing (just a typedef to atomic<bool>).
...
llvm-svn: 171498
2013-01-04 18:58:50 +00:00
Marshall Clow
f8c2b82337
...and then there was one. Only one copy of 'iterators.h' in the test tree for libc++
...
llvm-svn: 171479
2013-01-04 18:24:04 +00:00
Marshall Clow
f941359201
Removed another copy of 'iterators.h' files in libcxx/test
...
llvm-svn: 171456
2013-01-03 03:57:56 +00:00
Marshall Clow
cf1589f749
Removed several more different 'iterators.h' files in libcxx/test
...
llvm-svn: 171452
2013-01-03 02:29:29 +00:00
Marshall Clow
9b726d242f
Removed 7 (of 8) different 'iterators.h' files in test/localization
...
llvm-svn: 171443
2013-01-03 01:45:09 +00:00
Howard Hinnant
5b5e5336a4
Updating CREDITS.TXT
...
llvm-svn: 171347
2013-01-01 16:09:11 +00:00
NAKAMURA Takumi
43632a26a5
Update the copyright coredits -- Happy new year 2013!
...
llvm-svn: 171342
2013-01-01 10:00:19 +00:00
Howard Hinnant
861f006d3f
Klaas de Vries: Fix bug in libc++'s std::string::find_first_not_of.
...
llvm-svn: 171321
2012-12-31 20:09:48 +00:00
Michael J. Spencer
bb8cfd0fec
[CMake] Fix c++ abi library configuration on Linux.
...
You can now configure from the command line using:
-DLIBCXX_CXX_ABI=libsupc++
-DLIBCXX_LIBSUPCXX_INCLUDE_PATHS="path;path
Also documents how to build on Linux.
llvm-svn: 171316
2012-12-31 19:34:21 +00:00
Chandler Carruth
e70a813b59
Don't mark variadic functions as always inline -- they cannot in fact be
...
inlined.
Patch by Saleem Abdulrasool, reviewed by Michael Spencer and Richard Smith.
llvm-svn: 171276
2012-12-31 06:09:54 +00:00
Chandler Carruth
3036ab26e3
Add a simple .arcconfig to make using the 'arc' commandline tool and the
...
phabricator code review site easier with libc++.
llvm-svn: 171275
2012-12-31 05:59:45 +00:00
Howard Hinnant
a96d74585f
Remove test for eof from istreambuf_iterator constructors. It is no longer necessary and potentially violates the constructor's noexcept spec.
...
llvm-svn: 171232
2012-12-29 17:45:42 +00:00
Howard Hinnant
bd037ab4ba
Saleem Abdulrasool: GCC complains about the template functions as potentially not being able to be
...
inlined. These do not need to be always-inlined for ABI stability because they are not exported beyond this source due to the unnamed namespace.
Also simplified use of the Wmissing-field-initializers pragma as was done for clang.
llvm-svn: 171202
2012-12-28 18:15:01 +00:00
Howard Hinnant
0933f5d358
Saleem Abdulrasool: Add entry to CREDITS.TXT.
...
llvm-svn: 171174
2012-12-27 23:26:52 +00:00
Howard Hinnant
6b0101acae
Saleem Abdulrasool: cleanup a few more compile warnings emitted by GCC.
...
llvm-svn: 171173
2012-12-27 23:24:31 +00:00
Howard Hinnant
80a11413bb
Saleem Abdulrasool: avoid hardcoding buffer lengths.
...
llvm-svn: 171169
2012-12-27 21:17:53 +00:00
Howard Hinnant
43d978e5c4
Saleem Abdulrasool: Silence warning and reduce unnecessary code in hash.cpp.
...
llvm-svn: 171167
2012-12-27 18:59:05 +00:00
Howard Hinnant
267e3e1eb8
Saleem Abdulrasool: This just rounds up a few compile warnings emitted by GCC (4.7.2).
...
llvm-svn: 171165
2012-12-27 18:46:00 +00:00
Chad Rosier
7f902715e8
Remove redundant inits. Patch by Eitan Adler.
...
llvm-svn: 170967
2012-12-22 00:12:05 +00:00
Howard Hinnant
d15de653f0
Test case for http://llvm.org/bugs/show_bug.cgi?id=14670 .
...
llvm-svn: 170706
2012-12-20 16:50:07 +00:00
Howard Hinnant
3b42bdd58a
Hyeon-Bin Jeong: readsome() need to reset gcount to zero. This fixes http://llvm.org/bugs/show_bug.cgi?id=14670 .
...
llvm-svn: 170703
2012-12-20 15:40:28 +00:00
Richard Smith
e3fbbccc0f
Implement std::is_base_of for the case where we don't have a compiler
...
intrinsic. This relies upon the fact that overload resolution does not check
access and ambiguity for a derived-to-base conversion. This passes all
is_base_of tests in the test suite.
llvm-svn: 170662
2012-12-20 04:20:28 +00:00
Marshall Clow
36a60721ce
Added static_assert to std::get<N>(std::array) calls to catch "out of bounds" calls
...
llvm-svn: 170435
2012-12-18 16:46:30 +00:00
Howard Hinnant
3cea78ee68
Updated CREDITS.TXT
...
llvm-svn: 170062
2012-12-13 00:51:59 +00:00
Howard Hinnant
16694b5df5
Zhang Xiongpang: Add definitions for const data members. Fixes http://llvm.org/bugs/show_bug.cgi?id=14585 .
...
llvm-svn: 170026
2012-12-12 21:14:28 +00:00
Howard Hinnant
9f4328b173
Modify testit to use the local headers and lib. Thanks go to Jeffrey Yasskin.
...
llvm-svn: 169686
2012-12-09 00:12:14 +00:00
Michael J. Spencer
299fc29a59
[CMake] Add support for selecting which c++ abi library to use.
...
llvm-svn: 169036
2012-11-30 21:02:29 +00:00
Richard Smith
e1f363c724
Remove 'noreturn' attribute from friend declaration. This attribute will be
...
inherited from the previous out-of-class declaration, and attributes on friend
function declarations are ill-formed in C++11.
llvm-svn: 168853
2012-11-29 04:30:50 +00:00
Daniel Dunbar
7c4b853e74
tests/lit: Change test default parameters to assume local build.
...
- Also, support overriding them with lit parameters.
llvm-svn: 168749
2012-11-27 23:56:28 +00:00
Howard Hinnant
6852b55314
Fix type-o.
...
llvm-svn: 168715
2012-11-27 18:52:32 +00:00
Howard Hinnant
43a1f7b045
Remove by-chapter breakdown of what is implemented. The chart is now obsolete.
...
llvm-svn: 168713
2012-11-27 18:35:09 +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
dfdf5085df
istreambuf_iterator increment should call sbumpc instead of snextc. Patch
...
by Kimball Thurston. This fixes http://llvm.org/bugs/show_bug.cgi?id=14358 .
llvm-svn: 168209
2012-11-16 22:17:23 +00:00
Howard Hinnant
b5c63a2e07
Restrict optimized __pad_and_output implementation detail to desired releases.
...
llvm-svn: 167980
2012-11-14 21:17:15 +00:00
Marshall Clow
497d9d2671
Change C++0x references to C++11, Fixes bug #12745
...
llvm-svn: 167930
2012-11-14 16:31:15 +00:00
Howard Hinnant
119703f984
Dimitry Andric: Silence some miscellaneous warnings.
...
llvm-svn: 167493
2012-11-06 21:55:44 +00:00
Howard Hinnant
3e2740a36c
Dimitry Andric: Silence some warnings in <locale>.
...
llvm-svn: 167492
2012-11-06 21:48:33 +00:00
Howard Hinnant
a01739a03a
Enable the tuple interface of pair in C++03 mode.
...
llvm-svn: 167491
2012-11-06 21:42:45 +00:00
Howard Hinnant
1c8358c13c
Update instructions for building and using libc++ on Mac OS
...
llvm-svn: 167490
2012-11-06 21:31:37 +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
66e7ed959f
peek should set eofbit if sgetc() returns eof.
...
llvm-svn: 167238
2012-11-01 17:32:07 +00:00
Howard Hinnant
b304811686
Richard Smith: This fixes a problem in std::is_constructible for incomplete types, and those types with a user-defined operator,().
...
llvm-svn: 167233
2012-11-01 16:32:14 +00:00