Commit Graph

209 Commits

Author SHA1 Message Date
Eric Fiselier
ae8bc6b3ef Add 'no_default_flags' option for turning off all default test compile and link flags.
When 'no_default_flags' is true only flags passed using '--param=compile_flags'
and '--param=link_flags' will be used when compiling the tests. This option
can be used to run the test suite against libstdc++ and helps with all
unusual test suite configurations.

NOTE: sanitizer flags are still added when '--param=use_sanitizer' is used even
if '--param=no_default_flags' is given.




git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@226322 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-16 21:22:08 +00:00
Eric Fiselier
71dc14e864 [libcxx] Add numerous options to libc++ LIT test suite configuration.
Summary:
In order to fully replace the testit script we need to update LIT so it provides the same functionality.
This patch adds a number of different configuration options to LIT to do that. It also adds documentation for all of the command line parameters that LIT supports.

Generic options added:
- `libcxx_headers`
- `libcxx_library`
- `compile_flags`


Generic options modified:
- `link_flags`: Changed from overriding the default args to adding extra args instead (to match compile flags)
- `use_sanitizer`: Renamed from `llvm_use_sanitizer`


Please see the added documentation for more information about the switches. As for the actual documentation I'm not sure if it should be kept in libc++ forever since it adds an undue maintenance burden, but I think it should be added for the time being while the changes are new. I'm verify unskilled with HTML so if the documentation needs any changes please let me know.

Hopefully this will kill testit.



Reviewers: jroelofs, mclow.lists, danalbert

Reviewed By: danalbert

Subscribers: alexfh, cfe-commits

Differential Revision: http://reviews.llvm.org/D5877

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@224728 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-22 20:49:45 +00:00
Eric Fiselier
4778eed34f [libcxx] Teach libcxx's lit configuration new ways to find lit.site.cfg
Summary:
Currently to run tests in tree you need to symlink the lit.site.cfg file generated by the cmake build into the source tree, and teach your VCS to ignore it.

This allows the user to specify where to find the lit.site.cfg file two different ways:
* lit_site_config lit parameter
* LIT_SITE_CONFIG enviroment variable. 

example usage:
```
lit -sv --param=libcxx_site_config=path/to/libcxx-build/test/lit.site.cfg path/to/tests
```
Or
```
export LIBCXX_SITE_CONFIG=path/to/libcxx-build/test/lit.site.cfg
lit -sv path/to/tests
```
The command line parameter will override the environment variable. 
If neither options are present a warning is issued and the `lit.cfg` file is loaded directly. 


Reviewers: mclow.lists, jroelofs, danalbert

Reviewed By: danalbert

Subscribers: ddunbar, cfe-commits

Differential Revision: http://reviews.llvm.org/D6255

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@224671 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-20 03:16:55 +00:00
Marshall Clow
e3e7054f48 Implement LWG 2217 - operator==(sub_match, string) slices on embedded '\0's
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@224292 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-15 23:57:56 +00:00
Eric Fiselier
453a50040b Update information on where to find buildbots. Remove dead buildbot links.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@223848 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-09 22:53:21 +00:00
Marshall Clow
03c6791dc6 Implement N4280 - 'Non-member size() and more'
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@222378 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-19 19:43:23 +00:00
Marshall Clow
ab5bd89de1 Added entries for bugs 2118 and 2306, which were closed in Urbana
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@222361 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-19 15:59:16 +00:00
Marshall Clow
b1d7c713b4 Marked LWG 2399 as complete. I committed a test for this earlier today.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@222251 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-18 20:37:47 +00:00
Marshall Clow
9a4997ba29 Update status of LWG issues 2340, 2396 and 2401. In all three cases, these are things that we already do.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@222240 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-18 17:35:16 +00:00
Marshall Clow
4b3ca8c249 Implement LWG2400 - 'shared_ptr's get_deleter() should use addressof()', and add tests. Mark LWG2400 and LWG2404 as complete
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@222161 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-17 19:05:50 +00:00
Marshall Clow
88aae920ef Implement void_t from N3911. Add a private version for use in the library before C++1z. Update the 1z status page, marking a bunch of issues that don't require library changes as complete (2129, 2212, 2230, 2233, 2325, 2365, 2376)
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@222138 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-17 15:50:08 +00:00
Marshall Clow
c7b233d1de Fixed a typo in a paper name: 4190 --> N4190
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@221690 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-11 16:45:50 +00:00
Marshall Clow
1e895c1fd7 Update status pages for C++1z
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@221601 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-10 15:43:20 +00:00
Eric Fiselier
499b1ad671 Remove dead buildbot link
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@220260 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-21 02:46:31 +00:00
Eric Fiselier
cb7e32c290 [libcxx] Redo adding support for building and testing with an ABI library not along linker paths
Summary:
This is the second attempt at allowing for the use of libraries that the linker cannot find. The first attempt used `CMAKE_LIBRARY_PATH` and `find_library` to select which ABI library should be used. There were a number of problems with this approach:

- `find_library` didn't work with cmake targets (ie in-tree libcxxabi build)
- It wasn't always possible to determine where `find_library` actually found your library.
- `target_link_libraries` inserted the path of the ABI library into libc++'s RPATH when `find_library` was used.
- Linking libc++ and it's ABI library is a special case. It's a lot easier to keep it simple. 

After discussion with @cbergstrum a new approach was decided upon.
This patch achieve the same ends by simply using `LIBCXX_CXX_ABI_LIBRARY_PATH` to specify where to find the library (if the linker won't find it). When this variable is defined it is simply added as a library search path when linking libc++. It is a lot easier to duplicate this behavior in LIT. It also prevents libc++ from being linked with an RPATH.






Reviewers: mclow.lists, cbergstrom, chandlerc, danalbert

Reviewed By: chandlerc, danalbert

Subscribers: chandlerc, cfe-commits

Differential Revision: http://reviews.llvm.org/D5860

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@220157 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-19 00:42:41 +00:00
Eric Fiselier
9071bc098b [libcxx] Add support for building and testing with an ABI library not along linker paths
Summary:
This patch adds support for building/testing libc++ with an ABI library that the linker would not normally find.

- `CMAKE_LIBRARY_PATH` is used to specify the list of search directories.
- The ABI library is now found using `find_library` instead of assuming its along the linker's search path.
- `CMAKE_LIBRARY_PATH` is passed to our LIT config as `library_paths`.
- For each path in `library_paths` the following flags are added `-L<path> -Wl,-rpath -Wl,<path>`

Some changes in existing behavior were also added:
- `target_link_libraries` is now passed the ABI library file instead of the library name. Ex `target_link_libraries(cxx "/usr/lib/libc++abi.so")` vs `target_link_libraries(cxx "c++abi")`.
- `-Wl,-rpath -Wl,<path>` is now used on OSX to link to libc++ instead of env['DYLD_LIBRARY_PATH'] if `use_system_lib=False`.




Reviewers: mclow.lists, danalbert, EricWF

Reviewed By: EricWF

Subscribers: emaste, cfe-commits

Differential Revision: http://reviews.llvm.org/D5038

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@220118 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-18 01:15:17 +00:00
Eric Fiselier
798b2ac28f Fix bad link in documentation. Thanks to rsmith
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@219898 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-16 03:15:31 +00:00
Eric Fiselier
a43d1141b9 Add my buildbot to list of libc++ buildbots in documentation
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@219894 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-16 02:48:59 +00:00
Eric Fiselier
978faa00df Update linux test results
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@215884 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-18 06:53:30 +00:00
Eric Fiselier
caf1c029cb [libcxx] Add list of currently known buildbots to libc++ homepage
Summary:
Instead of having to update test results for different platforms it would be helpful to just supply links to buildbots that build+test libcxx.
For the FreeBSD bots Pawel Worach gave me the OK to link to them.

Reviewers: mclow.lists, danalbert

Reviewed By: danalbert

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D4947

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@215882 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-18 05:25:04 +00:00
Dan Albert
35d775d0e4 Update libc++ docs to include instructions for LIT.
Okay, so this actually does more than just that. I've rearranged most of
the information on the page to try to make it more helpful and flow
better.  Essentially, the differences between Mac and Linux, the various
ABI libraries, and in-tree versus out-of-tree builds were cluttering
things. To clean up, I've done the following:

 * Only describe the cmake process. buildit doesn't work out of the box
   on Linux, and we need to stop having duplicates for every process.
 * Use libc++abi for the default instructions. This works on the major
   platforms.
 * Describe both in-tree and out-of-tree builds. Previously it wasn't
   clear that in-tree builds were even possible for libc++.
 * Separate the documentation about using libc++ from that about
   building and testing libc++.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@215358 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-11 15:12:46 +00:00
Eric Fiselier
32d4b65d56 Adding ABI information to linux test results
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@214484 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-01 06:30:18 +00:00
Eric Fiselier
b127e600c4 Update information about compiler used during linux tests and reformat run information.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@214483 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-01 06:27:40 +00:00
Eric Fiselier
c72b49ba0c Update linux test results file
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@214474 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-01 01:59:09 +00:00
Eric Fiselier
b1a40264dc [libcxx] Add <experimental/utility> header for LFTS.
Summary:
This patch adds the `<experimental/utility>` header as specified in the latest draft of the library fundamentals TS.

`<experimental/utility>` only contains `class erased_type`. 

This patch also updates the documentation to list the `erased_type` class as "initial implementation complete".

Test Plan:
Three test cases where added:

1. Test that `_LIBCPP_VERSION` is defined.
2. Test that `<utility>` has been included.
3. Test that `erased_type` is in the correct namespace and is constexpr default constructible.

Reviewers: mclow.lists

Reviewed By: mclow.lists

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D4510

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@213226 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-17 05:31:31 +00:00
Marshall Clow
5520bf5cbe Fixed damaged row in issues table; thanks to STL for the catch
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@210500 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-09 23:27:27 +00:00
Marshall Clow
5a54699578 Add a note about debug mode being non-functional
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@210162 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-04 04:49:49 +00:00
Marshall Clow
d2f0b5c9ae First cut at a post c++14 status page
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@210056 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-02 23:37:13 +00:00
Marshall Clow
3f357193cb Removed 'sized deallocation' from C++14 status page since it turned out to require no library work, and fixed a typo in index.html. Thanks to Tobias for pointing these out.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205700 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-07 07:28:33 +00:00
Marshall Clow
992f9d5017 Add a section about reporting bugs and contributing patches
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205507 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-03 03:13:12 +00:00
Marshall Clow
874ec678c0 Reword C++14 status to match C++11 status
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205505 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-03 02:38:12 +00:00
Marshall Clow
e4915d9b46 Mark C++14 status as 'complete'
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@205504 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-03 02:35:29 +00:00
Marshall Clow
b0767852f7 Implement LWG issue #2135. If something goes wrong in condition_variable::wait, call terminate() rather than throwing an error. Do this indirectly, by marking the call as 'noexcept'. This is better than just calling terminate() directly, because it gives a better error message on the console.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204778 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-26 02:45:04 +00:00
Marshall Clow
ab5e0a72d5 Mark LWG issues #2075 and #2142 as complete. 2142 was a change to the standard
to remove redundant wording, which required no changes to libc++. 2075 was a 
rewrite of the requirements for forward progress, and again, requires no changes
to the library.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204724 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-25 14:57:05 +00:00
Marshall Clow
bce096d34d Add a test to make sure we're doing the right thing for throwing exceptions from deferred functions. This is LWG issue #2186. No change to the library needed.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204678 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-24 22:25:24 +00:00
Marshall Clow
c0bf6f5369 Mark LWG Issue #2288 as complete. This was wording cleanup, no code changes required.
Also mark #2104 as complete. Leave the implementation in libc++ as noexcept, since 
implementations are allowed to add noexcept to non-virtual calls. If we throw from
unique_lock& operator=(unique_lock&& u), then that means the preconditions were violated,
and calling terminate() (as a result of throwing from a noexcept function) is as
good example of undefined behavior as any other.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204653 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-24 18:38:01 +00:00
David Majnemer
f9f95be930 Implement N3891: A proposal to rename shared_mutex to shared_timed_mutex
This is as straightforward as it sounds, a renamed from shared_mutex to
shared_timed_mutex.

Note that libcxx .dylib and .so files built with c++14 support need to
be rebuilt.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@204078 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-17 20:19:44 +00:00
Marshall Clow
1a5e2cb621 Remove Issue #2235 from the Chicago section. The resolution was approved in Bristol (and it is listed there), and then is was approved *again* in Chicago. Thanks to STL @ microsoft for the catch
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203995 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-15 01:55:31 +00:00
Marshall Clow
b1ead689be Implement LWG 2360: 'reverse_iterator::operator*() is unimplementable'. Note that this is a (small) behavior change in the library. Reverse iterators whose base iterators' operator* return references to 'within themselves' have been sacrificed to the greater goal of avoiding data races.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203587 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-11 17:16:17 +00:00
Marshall Clow
7db57339fb Mark LWG #2314. 'apply() should return decltype(auto) and use decay_t before tuple_size' as complete. This is a correction to some example code in the standard, no change needed for libc++.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203579 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-11 15:17:34 +00:00
Marshall Clow
3ebf26f90d Final bit for LWG #2263; test different allocator pointer types. Note that libc++ already does the right thing here; I've just added tests to ensure that it stays this way.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203539 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-11 04:32:12 +00:00
Marshall Clow
6dbaaa99a8 Add tests for LWG issue #2356. Stability of erasure in unordered associative containers. Libc++ already does this, but now we have tests for it.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203494 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-10 21:36:36 +00:00
Marshall Clow
f7b63d646b Mark issues #2357 (wording changes in the standard, no functionality change) and #2132 (libc++ already does this) as complete.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203478 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-10 17:59:59 +00:00
Marshall Clow
d14101758a Update status for LWG 2193 and 2344.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@203291 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-07 21:47:20 +00:00
Marshall Clow
ebd6c2b81d Implement LWG #2212: std::is_final. This requires compiler support, which modern versions of clang provide. Also mark LWG #2230 as complete - no code changes needed.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@202934 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-05 03:39:25 +00:00
Marshall Clow
23ef151614 Update synposis in <memory> to show move semantics for weak_ptr; add tests for already existing move semantics. Mark LWG issues #2315 (no changes needed), 2316 (move semantics for weak_ptr), 2252 (previous commit) and 2271 (previous commit) as complete.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@202931 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-05 03:12:04 +00:00
Marshall Clow
a6057a525a Fix issue number error; 2141 --> 2291 and mark it as complete
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@202884 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-04 20:29:09 +00:00
Marshall Clow
5ba85af029 Add a SG1 paper and some SG1 issues that affect the library to the task list.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@202881 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-04 19:40:36 +00:00
Marshall Clow
ab9da1a78f Apply David Majnemer's patch updating the links to the papers from Chicago and Issaquah.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@202878 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-04 19:22:53 +00:00
Marshall Clow
8f20e52a2b Mark issues #2240 (wording only) and #2268 (revision 202876) as complete.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@202877 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-04 19:18:36 +00:00