summaryrefslogtreecommitdiffstats
path: root/libcxx
Commit message (Collapse)AuthorAgeFilesLines
...
* Add -Wno-error by default to work around failing compiler-rt buildsEric Fiselier2015-07-311-0/+4
| | | | llvm-svn: 243725
* Reapply working parts of CMake cleanup.Eric Fiselier2015-07-309-360/+493
| | | | | | | This patch adds the working parts of r243503. The difference with this patch is that it doesn't include the HandleLLVMOptions.cmake file. llvm-svn: 243698
* Fix PR#24267. use numeric_limits::max instead of ~0 for 'all ones', since ↵Marshall Clow2015-07-301-1/+1
| | | | | | that might give wrong answers on a 1's complement machine. llvm-svn: 243674
* Change some #ifdefs to #if - thanks to Dexon for thge catch.Marshall Clow2015-07-302-4/+4
| | | | llvm-svn: 243641
* Revert recent CMake changes again due to failing compiler-rt buildsEric Fiselier2015-07-299-464/+382
| | | | llvm-svn: 243593
* Attempt to fix build issues introduced by Eric Fiselier2015-07-292-31/+38
| | | | | | r243574 llvm-svn: 243591
* Fix typo in unused variable name.Nick Lewycky2015-07-291-1/+1
| | | | llvm-svn: 243586
* Recommit r243503 "[libcxx] Cleanup CMake configuration and integrate with LLVM"Eric Fiselier2015-07-299-382/+457
| | | | | | | | | This change was reverted in r243550 because it broke clang-format builds (see PR24306). This patch recommits a fixed version of the original. llvm-svn: 243574
* Revert r243503 "[libcxx] Cleanup CMake configuration and integrate with LLVM"Hans Wennborg2015-07-299-453/+380
| | | | | | This caused clang-format to stop linking on Mac; see PR24306. llvm-svn: 243550
* Fix a self-move bug in inplace_merge. Thanks to Ted and Dexon for the report ↵Marshall Clow2015-07-293-18/+101
| | | | | | and the suggested fix. llvm-svn: 243530
* [libcxx] Cleanup CMake configuration and integrate with LLVMEric Fiselier2015-07-299-380/+453
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch contains the following changes: 1. Require that libc++ can find a LLVM source directory. This is done the same way as `libc++abi` currently does. 2. Cleanup ugly configuration code in CMakeLists.txt by using `add_flags`, `add_flags_if`, and `add_flags_if_supported` macros. The goals for this patch are: 1. Help libc++ be more consistent with how LLVM handles CMake options (see PR23670 PR23671). 2. Make it easier to use sanitizers using the `LLVM_USE_SANITIZER` option. 3. Make libc++'s CMakeLists.txt file easier to understand and change. 4. Move towards allowing libc++ to create Sphinx documentation (see http://efcs.ca/libcxx-docs). 5. Move towards allowing libc++ to use other LLVM utilities such as `not` and `FileCheck`. Reviewers: mclow.lists, jroelofs, danalbert Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D11308 llvm-svn: 243503
* Remove sanitizer XFAILs on a test.Eric Fiselier2015-07-281-7/+0
| | | | llvm-svn: 243499
* Consolidate a bunch of #ifdef _LIBCPP_NO_EXCEPTIONS .. #endif blocks into a ↵Marshall Clow2015-07-281-165/+64
| | | | | | single template function. NFC llvm-svn: 243415
* Mark async tests as UNSUPPORTED in C++03 because it requires variadicsEric Fiselier2015-07-282-0/+2
| | | | llvm-svn: 243393
* Fix a handful of tests that fail in C++03Eric Fiselier2015-07-288-35/+35
| | | | llvm-svn: 243392
* Cleanup C++03 __invoke for Bullets 3 and 4.Eric Fiselier2015-07-282-19/+9
| | | | | | | | | | | | | | | | | | | | | | | The key changes in this patch are: 1. Remove the zero-argument overload in mem_fn. A member function must always be invoked with at least one argument, the class instance. The zero-argument operator()() in mem_fn would cause mem_fn to fail to compile when because the call to '__invoke(pm)' is not well formed. 2. Prevent evaluation of '__apply_cv<Tp, Ret>' when 'Ret' is a function type. 'Ret' is a function type whenever 'Ret Tp::*' is a pointer to member function. Attempting to add cv and ref qualifiers to a function type can cause a hard compile error. 3. Remove the dummy overload __invoke(Rp Tp::*). It was present to help work around #1. It will be replaced with a different '__invoke' overload that represents a bad call to invoke. After applying this patch the test func.wrap.func.inv/invoke.pass.cpp now passes. llvm-svn: 243370
* Get C++03 __invoke working for bullet 5 of INVOKE.Eric Fiselier2015-07-281-27/+16
| | | | | | | | | | | | | | | | | | | This patch does a couple of things to get __invoke working for free-functions and call objects. 1. Turn all uses of declval<Tp>() into declval<Tp&>(). The C++03 __invoke only supports lvalues but it will be used when the compiler supports rvalue references but not variadic templates. This change makes sure we don't generate an rvalue. 2. Call objects for bullet 5 are now passed by reference and not value. Copying the functor is incorrect. It will fail to compile for non-copyable functors and it will discard cv-qualifiers on the call object, possibly leading to the wrong function being called. I suspect that the reason the call object was originally taken by value was to support temporary call objects. However __invoke is only used internally and it is never given a temporary. llvm-svn: 243368
* Checking more __invoke tests.Eric Fiselier2015-07-284-0/+1126
| | | | | | | Before I start trying to fix __invoke in C++03 it needs better test coverage. This patch adds a large amount of tests for __invoke. llvm-svn: 243366
* Detect and throw on a class of bad regexes that we mistakenly accepted ↵Marshall Clow2015-07-233-1/+51
| | | | | | before. Thanks to Trevor Smigiel for the report llvm-svn: 243030
* Mark this test as XFAIL with older compilers, since they hit PR18097Justin Bogner2015-07-221-0/+4
| | | | llvm-svn: 242967
* Merge C++03 and C++11 implementations of mem_fn and __mem_fn.Eric Fiselier2015-07-222-199/+35
| | | | | | | | | | | | | | | | | The implementation of mem_fn doesn't actually require any C++11 support. For some reason there were 17 overloads for mem_fn in C++03 when only one is needed. This patch removes the extra overloads and uses the same implementation of mem_fn in C++03 and C++11. __mem_fn does require variadics to implement the call operator. Instead of having two entirely different implementations of the __mem_fn struct, this patch uses the same __mem_fn struct but provides different call operators when variadics are not available. The only thing left in <__functional_03> is the C++03 implementation of std::function. llvm-svn: 242959
* Remove almost everything in <__functional_base_03>Eric Fiselier2015-07-222-377/+94
| | | | | | | | | This patch removes a large amount of duplicate code found in both <__functional_base> and <__functional_base_03>. The only code that remains in <__functional_base_03> is the C++03 implementation of __invoke and __invoke_return. llvm-svn: 242951
* Remove more commented out code. That is what version control is for.Eric Fiselier2015-07-221-236/+0
| | | | llvm-svn: 242872
* Cleanup <__functional_03>Eric Fiselier2015-07-2211-309/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | <__functional_03> provides the C++03 definitions for std::memfun and std::function. However the interaction between <functional> and <__functional_03> is ugly and duplicates code needlessly. This patch cleans up how the two headers work together. The major changes are: - Provide placeholders, is_bind_expression and is_placeholder in <functional> for both C++03 and C++11. - Provide bad_function_call, function fwd decl, __maybe_derive_from_unary_function and __maybe_derive_from_binary_function in <functional> for both C++03 and C++11. - Move the <__functional_03> include to the bottom of <functional>. This makes it easier to see how <__functional_03> interacts with <functional> - Remove a commented out implementation of bind in C++03. It's never going to get implemented. - Mark almost all std::bind tests as unsupported in C++03. std::is_placeholder works in C++03 and C++11. std::is_bind_expression is provided in C++03 but always returns false. llvm-svn: 242870
* Fix initializer list order in <regex> to be correctEric Fiselier2015-07-221-3/+3
| | | | llvm-svn: 242864
* [libcxx] Add support for sanitizers on OS X.Eric Fiselier2015-07-223-0/+33
| | | | | | | | | | | | Summary: This patch adds special configuration logic to find the compiler_rt libraries required by sanitizers on OS X. The supported sanitizers are Address and Undefined. Reviewers: mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D11381 llvm-svn: 242858
* Update the status of the TS'esMarshall Clow2015-07-211-6/+5
| | | | llvm-svn: 242788
* Mark new tests as unsupported before C++11Marshall Clow2015-07-204-1/+9
| | | | llvm-svn: 242695
* Implement the default searcher for std::experimental::search.Marshall Clow2015-07-208-0/+538
| | | | llvm-svn: 242682
* Implement the plugin-based version of std::search. There are no searchers ↵Marshall Clow2015-07-202-0/+49
| | | | | | yet; those are coming soon. llvm-svn: 242679
* Fix warnings in unordered_mapEric Fiselier2015-07-1929-85/+44
| | | | llvm-svn: 242634
* Fix warnings in forwardlistEric Fiselier2015-07-193-6/+6
| | | | llvm-svn: 242633
* Fix warnings in deque testsEric Fiselier2015-07-1911-62/+24
| | | | llvm-svn: 242632
* Commit file missing from r242629Eric Fiselier2015-07-191-0/+8
| | | | llvm-svn: 242630
* Fix warnings in array and assoc containersEric Fiselier2015-07-1822-29/+96
| | | | llvm-svn: 242629
* Remove unused typedefs in random and regexEric Fiselier2015-07-182-6/+0
| | | | llvm-svn: 242628
* Cleanup warnings in test/std/deprEric Fiselier2015-07-1812-15/+32
| | | | llvm-svn: 242627
* Fix warnings in test/std/algorithmsEric Fiselier2015-07-186-18/+20
| | | | llvm-svn: 242626
* Fix unused variable warnings in atomic testsEric Fiselier2015-07-185-5/+7
| | | | llvm-svn: 242625
* Fix warnings in test/std/language.supportEric Fiselier2015-07-1810-9/+44
| | | | llvm-svn: 242624
* Enable and fix warnings during the build.Eric Fiselier2015-07-186-19/+29
| | | | | | | | | | | | | | | | | Although CMake adds warning flags, they are ignored in the libc++ headers because the headers '#pragma system header' themselves. This patch disables the system header pragma when building libc++ and fixes the warnings that arose. The warnings fixed were: 1. <memory> - anonymous structs are a GNU extension 2. <functional> - anonymous structs are a GNU extension. 3. <__hash_table> - Embedded preprocessor directives have undefined behavior. 4. <string> - Definition is missing noexcept from declaration. 5. <__std_stream> - Unused variable. llvm-svn: 242623
* Fix up typos in a couple of tests; due to agressive short-circuiting, they ↵Marshall Clow2015-07-182-2/+10
| | | | | | never failed on clang or gcc, but MSVC whined. Patch by Andrew Parker. llvm-svn: 242618
* Add missing instrumentation in vector::insert - Patch from Anna ZaksEric Fiselier2015-07-183-4/+20
| | | | | | This patch was reviewed as D10859. http://reviews.llvm.org/D10859 llvm-svn: 242617
* [libcxx] Get is_*_destructible tests passing in C++03.Eric Fiselier2015-07-184-38/+80
| | | | | | | | | | | | Summary: This patch adds proper guards to the is_destructible tests depending on the standard version so that they pass in c++03. Reviewers: mclow.lists, EricWF Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D10047 llvm-svn: 242612
* Cleanup tests that fail in C++1z and with Clang 3.8Eric Fiselier2015-07-179-377/+248
| | | | llvm-svn: 242581
* Bump libc++ version # to 3.8Marshall Clow2015-07-171-1/+1
| | | | llvm-svn: 242541
* Include what we use, instead of letting them get pulled in implictly. This ↵Marshall Clow2015-07-163-0/+5
| | | | | | makes the tests work on VS. Thanks to STL for the report llvm-svn: 242454
* Set the libc++ version # to 3.7. Will bump to 3.8 soonMarshall Clow2015-07-161-1/+1
| | | | llvm-svn: 242421
* Make sure that __libcpp_compressed_pair_imp default-constructs its' members, ↵Marshall Clow2015-07-162-7/+23
| | | | | | rather than value-initializing them. Fixes PR#24137 llvm-svn: 242377
* Mark two tests as failing on clang 3.8 (they failed on 3.7, too)Marshall Clow2015-07-162-4/+4
| | | | llvm-svn: 242375
OpenPOWER on IntegriCloud