Commit Graph

1829 Commits

Author SHA1 Message Date
Marshall Clow 9a7971131e Rooting out more undefined behavior in char_traits.
llvm-svn: 229119
2015-02-13 16:04:42 +00:00
Jonathan Roelofs 272dcdc4a5 Appease buildbots
llvm-svn: 229114
2015-02-13 15:34:01 +00:00
Jonathan Roelofs a61779e67a Modularize TargetInfo discovery in the lit config
When the remote execution patch lands, this will allow us to drop in a
replacement TargetInfo object for locale support discovery, alleviating
the assumption that host==target.

http://reviews.llvm.org/D7601

llvm-svn: 229111
2015-02-13 15:25:21 +00:00
Dan Albert 0b15b14096 Fix error checking in get_temp_file_name().
Checking errno without first checking that the call failed means that
if some other call prior to mkstemp failed with EINVAL prior to this,
the assert would fire even if mkstemp succeeded. If something failed
with EEXIST, it would go in to an infinite loop.

Change-Id: I3f140a3e15fe08664a38a8c9a950c4ed547eb481
llvm-svn: 229035
2015-02-13 03:02:28 +00:00
Marshall Clow f3e0e3acda Move the test for zero-length into the char_traits (from string_view). Add tests to char_traits specializations
llvm-svn: 228981
2015-02-12 23:34:52 +00:00
Marshall Clow 8037b8ec6e Fixed a problem that UBSAN found, where we were calling memcmp(null, p, 0) - which is undefined behavior
llvm-svn: 228952
2015-02-12 19:58:06 +00:00
Marshall Clow c08e8f81ec Remove undefined behavior from test; specifically, compare(NULL, XXX, 0)
llvm-svn: 228928
2015-02-12 15:25:54 +00:00
Marshall Clow 351dde4e03 Remove undefined behavior from test; specifically, compare(NULL, XXX, 0). Thanks to Eric for the catch
llvm-svn: 228927
2015-02-12 15:21:20 +00:00
Marshall Clow 88d21343df Change some template parameter names from _C and _N to _Cont and _Sz. No functionality change.
llvm-svn: 228843
2015-02-11 16:14:01 +00:00
Marshall Clow 5f15a8b959 Need to wrap a bit in an ifdef, since there are no initializer_lists in C++03
llvm-svn: 228840
2015-02-11 15:48:21 +00:00
Marshall Clow 002144f61d Fix PR 22541: When values are equal, minmax should return the rightmost one in the initializer_list
llvm-svn: 228839
2015-02-11 15:41:34 +00:00
Eric Fiselier fe21713e2a Update double_include.sh.cpp for new headers.
llvm-svn: 228784
2015-02-11 01:31:02 +00:00
Eric Fiselier bb185a0a9e libc++ tests: wait_until.pass test sporadically fails (bug 21998)
Summary:
Hello Howard,

While running the libc++ tests on our ARM boards, we encounter sporadic failures of the two tests:
test/std/thread/futures/futures.shared_future/wait_until.pass.cpp
test/std/thread/futures/futures.unique_future/wait_until.pass.cpp

The worker thread might not finish yet when the main thread checks its result.
I filed the bug 21998 for this case: http://llvm.org/bugs/show_bug.cgi?id=21998

Would you be able to review this please?
Thank you.
Oleg

Reviewers: howard.hinnant, mclow.lists, danalbert, jroelofs, EricWF

Reviewed By: jroelofs, EricWF

Subscribers: EricWF, mclow.lists, aemerson, llvm-commits

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

llvm-svn: 228783
2015-02-11 01:25:57 +00:00
Eric Fiselier 58e985c2db Make convert_to_integral.pass.cpp more platform generic.
Don't depend on the underlying types of enums and wchar_t.

llvm-svn: 228781
2015-02-11 01:18:05 +00:00
Eric Fiselier e9bfd88e4b Remove default definition for libcxx_obj_dir because it doesn't make sense
llvm-svn: 228778
2015-02-11 01:03:44 +00:00
Dan Albert 86cc60eeea Make ABI header not found a warning, not an error.
Since we've added a new header to libc++abi (__cxxabi_config.h), we
now have a case where we might not always find all the ABI headers:
building libc++ against the system's libc++abi on Darwin.

Since this isn't actually a fatal error, degrade it to a warning.

llvm-svn: 228720
2015-02-10 18:46:57 +00:00
Eric Fiselier cc2e1ab69c Add pragma system header to some experimental headers and add newlines to files.
llvm-svn: 228712
2015-02-10 17:32:49 +00:00
Eric Fiselier 861d0ea2aa Fix more issues exposed by -pedantic-errors in c++03 mode
llvm-svn: 228711
2015-02-10 17:20:18 +00:00
Eric Fiselier 8f55e62990 Remove use of zero length arrays in tests. Get tests passing with -pedantic-errors
llvm-svn: 228706
2015-02-10 16:51:29 +00:00
Eric Fiselier 54519a6be9 [libcxx] Fix PR 22468 - std::function<void()> does not accept non-void-returning functions
Summary:
The bug can be found here: http://llvm.org/bugs/show_bug.cgi?id=22468

`__invoke_void_return_wrapper` is needed to properly handle calling a function that returns a value but where the std::function return type is void. Without this '-Wsystem-headers' will cause `function::operator()(...)` to not compile. 

Reviewers: eugenis, K-ballo, mclow.lists

Reviewed By: mclow.lists

Subscribers: cfe-commits

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

llvm-svn: 228705
2015-02-10 16:48:45 +00:00
Eric Fiselier 51544023a9 [libcxx] Properly convert the count arguments to the *_n algorithms before use.
Summary:
The requirement on the `Size` type passed to *_n algorithms is that it is convertible to an integral type. This means we can't use a variable of type `Size` directly. Instead we need to convert it to an integral type first.  The problem is finding out what integral type to convert it to.  `__convert_to_integral` figures out what integral type to convert it to and performs the conversion, It also promotes the resulting integral type so that it is at least as big as an integer. `__convert_to_integral` also has a special case for converting enums. This should only work on non-scoped enumerations because it does not apply an explicit conversion from the enum to its underlying type.



Reviewers: chandlerc, mclow.lists

Reviewed By: mclow.lists

Subscribers: cfe-commits

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

llvm-svn: 228704
2015-02-10 16:46:42 +00:00
Eric Fiselier 85b788c9c2 Fix use of C++11 extensions in C++03 code.
llvm-svn: 228698
2015-02-10 15:17:46 +00:00
Dan Albert 271e2646e8 Add __cxxabi_config.h to libcxxabi headers.
llvm-svn: 228364
2015-02-05 23:56:33 +00:00
Eric Fiselier 6fe361c1ef Remove use of _[A-Z] identifiers and poison them to detect usage
llvm-svn: 228353
2015-02-05 23:01:40 +00:00
Eric Fiselier c281a7a19f Get tests running with warnings. Fix warnings in headers and tests
llvm-svn: 228344
2015-02-05 20:28:37 +00:00
Dimitry Andric b1e78df0fa Fix unused private field warning in stdexcept after r207695.
Add a new _LIBCPP_UNUSED define in __config, which can be used to
indicate explicitly unused items, and apply it to the __imp__ field of
__libcpp_refstring.

Somebody who knows about Microsoft C++ and IBM C++ should fill in the
unused attribute syntax appropriate for those compilers, if there is
any.

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

llvm-svn: 228281
2015-02-05 07:40:48 +00:00
Dimitry Andric 7e187f1be9 Test commit: remove whitespace at EOL.
llvm-svn: 228280
2015-02-05 07:26:14 +00:00
Dan Albert 8645ea65e5 Fix some -Wundef issues.
llvm-svn: 228266
2015-02-05 02:34:59 +00:00
JF Bastien 7b683b43be libc++: remove unused variable in random_device::operator()()
Reviewers: jvoung

Subscribers: cfe-commits

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

llvm-svn: 228183
2015-02-04 20:25:57 +00:00
Eric Fiselier 3d2111e43b add platform to LIT's available features
llvm-svn: 228071
2015-02-03 23:49:58 +00:00
Eric Fiselier 5b67ed496e Fix alignment in tests for readability.
llvm-svn: 228028
2015-02-03 21:00:15 +00:00
Greg Fitzgerald 2e18729bce Don't assume LIT_EXECUTABLE points to a Python script, take 2
Before this patch, the CMake build assumed LIT_EXECUTABLE pointed
to a Python script, not an executable.  If you were to pass in an
executable, such as the result of py2exe on lit.py, the build would
fall over.

With this patch, the CMake build assumes LIT_EXECUTABLE is an
executable.  You can continue setting it to lit.py, but it will
now use its shebang to find a Python interpreter.

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

llvm-svn: 228005
2015-02-03 18:47:37 +00:00
Greg Fitzgerald 57775cd66f Revert "Don't assume LIT_EXECUTABLE points to a Python script"
This reverts r227994

llvm-svn: 227996
2015-02-03 18:16:47 +00:00
Greg Fitzgerald d9ecf1ae7c Don't assume LIT_EXECUTABLE points to a Python script
Before this patch, the CMake build assumed LIT_EXECUTABLE pointed
to a Python script, not an executable.  If you were to pass in an
executable, such as the result of py2exe on lit.py, the build would
fall over.

With this patch, the CMake build assumes LIT_EXECUTABLE is an
executable.  You can continue setting it to lit.py, but it will
now use its shebang to find a Python interpreter.

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

llvm-svn: 227994
2015-02-03 18:02:04 +00:00
Eric Fiselier 0285fc869d Mark <experimental/system_error> as complete
llvm-svn: 227974
2015-02-03 16:04:45 +00:00
Eric Fiselier 7bffc89cb9 [libcxx] Add <experimental/system_error>
Summary:
This patch just adds the variable templates in <experimental/system_error>.

see: https://rawgit.com/cplusplus/fundamentals-ts/v1/fundamentals-ts.html#syserror


Reviewers: jroelofs, danalbert, K-ballo, mclow.lists

Reviewed By: mclow.lists

Subscribers: chandlerc, cfe-commits

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

llvm-svn: 227973
2015-02-03 16:03:24 +00:00
Jonathan Roelofs 07d9d76a2d Revert: Revert r227804: Use fseek/ftell instead of fseeko/ftello when Newlib is the libc
EricWF has updated the compilers on his buildbots. Hopefully they won't crash now.

llvm-svn: 227971
2015-02-03 15:34:17 +00:00
Eric Fiselier 9ba5c11b99 Rename pow2 functions in __hash_table to reflect that they are hash specific
llvm-svn: 227866
2015-02-02 21:31:48 +00:00
Eric Fiselier a261064483 Update LFTS status page
llvm-svn: 227862
2015-02-02 21:10:21 +00:00
Eric Fiselier 2f746d4c94 [libcxx] Add <experimental/chrono>
Summary:
This patch adds <experimental/chrono> which only contains a single variable template.

See: https://rawgit.com/cplusplus/fundamentals-ts/v1/fundamentals-ts.html#time

Reviewers: jroelofs, danalbert, K-ballo, mclow.lists

Reviewed By: mclow.lists

Subscribers: cfe-commits

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

llvm-svn: 227860
2015-02-02 21:05:47 +00:00
Marshall Clow b9595b79f2 Fix PR#22433. The algorithm is_partitioned was testing an item in the middle of the sequence twice.
llvm-svn: 227824
2015-02-02 18:16:35 +00:00
Marshall Clow 0b48cf9a62 Fix PR#22427. The implementation of inplace_merge had a \'small data set\' optimization; if either half of the merge was small (i.e, less than 9 items), it did an inplace merge rather than allocating a buffer and doing a faster/smarter merge. However, this failed to satisfy the complexity requirements in the standard. Remove that code. Add tests to check the complexity, and add the same tests for std::merge, since we are in that section of the test suite anyway.
llvm-svn: 227811
2015-02-02 17:35:53 +00:00
Marshall Clow 526e0929a5 Reorder a couple of operations in inplace_merge so that we can meet the complexity guidelines mandated by the standard. References PR22427
llvm-svn: 227808
2015-02-02 16:44:11 +00:00
Jonathan Roelofs ef66a6f40c Revert r227804: Use fseek/ftell instead of fseeko/ftello when Newlib is the libc
This change is causing a driver crash on libcxx-libcxxabi-x86_64-linux-ubuntu-msan

llvm-svn: 227806
2015-02-02 15:56:43 +00:00
Jonathan Roelofs 8468bbb993 Use fseek/ftell instead of fseeko/ftello when Newlib is the libc
http://reviews.llvm.org/D6626

llvm-svn: 227804
2015-02-02 15:04:29 +00:00
Dan Albert b2c9c3cfce Add myself to CREDITS.TXT.
llvm-svn: 227630
2015-01-30 22:40:31 +00:00
Dan Albert 2477bed098 Update web page to direct patches to Phabricator.
llvm-svn: 227629
2015-01-30 22:33:41 +00:00
Marshall Clow 538fec0e59 Fix for PR22061 by K-ballo
llvm-svn: 227384
2015-01-28 22:22:35 +00:00
Marshall Clow 949389c395 We had two identical files named 'MoveOnly.h' in the test suite. Move one to support/, remove the other, and update all the tests that included them. No functionality change.
llvm-svn: 227370
2015-01-28 21:22:53 +00:00
Marshall Clow c57d98ae86 Removed some tabs that snuck into the test suite. No functionality change
llvm-svn: 227363
2015-01-28 20:26:11 +00:00