| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
to 'int' [or 'unsigned int'], possible loss of data", part 1/4.
Replace "int n = str_.size();" with "int n = static_cast<int>(str_.size());".
int is the correct type to use, because we're eventually calling
"base::pbump(n+1);" where base is std::basic_streambuf.
N4606 27.6.3.3.3 [streambuf.put.area]/4 declares: "void pbump(int n);"
llvm-svn: 288751
|
|
|
|
| |
llvm-svn: 288750
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
part 12/12.
Various changes:
test/std/algorithms/alg.sorting/alg.merge/inplace_merge.pass.cpp
This is comparing value_type to unsigned. value_type is sometimes int and sometimes struct S (implicitly constructible from int).
static_cast<value_type>(unsigned) silences the warning and doesn't do anything bad (as the values in question are small).
test/std/algorithms/alg.sorting/alg.nth.element/nth_element_comp.pass.cpp
This is comparing an int remote-element to size_t. The values in question are small and non-negative,
so either type is fine. I think that converting int to size_t is marginally better here than the reverse.
test/std/containers/sequences/deque/deque.cons/size.pass.cpp
DefaultOnly::count is int (and non-negative). When comparing to unsigned, use static_cast<unsigned>.
test/std/strings/basic.string/string.access/index.pass.cpp
We're comparing char to '0' through '9', but formed with the type size_t. Add static_cast<char>.
test/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp
Include <cstddef> for pedantic correctness (this test was already mentioning std::size_t).
"v[i] == (i & 1)" was comparing bool to size_t. Saying "v[i] == ((i & 1) != 0)" smashes the RHS to bool.
llvm-svn: 288749
|
|
|
|
|
|
|
|
|
|
|
|
| |
part 11/12.
Change "unsigned n = 0;" to "int n = 0;". It's being compared to int elements and ptrdiff_t distances.
test/std/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp
This one's a little special, but not really. "*i == n" is comparing MoveOnly to n.
MoveOnly is implicitly constructible from int, so int is the correct type to use here.
llvm-svn: 288748
|
|
|
|
|
|
|
|
|
|
|
|
| |
part 10/12.
Add static_cast<int>. In these cases, the values are guaranteed to be small-ish,
and they're being compared to int elements.
test/std/containers/sequences/deque/deque.capacity/access.pass.cpp
Use int instead of unsigned to iterate from 0 to 10.
llvm-svn: 288747
|
|
|
|
|
|
|
|
|
|
| |
part 9/12.
Add static_cast<std::size_t> to more comparisons. (Performed manually, unlike part 8/12.)
Also, include <cstddef> when it wasn't already being included.
llvm-svn: 288746
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
part 8/12.
Add static_cast<std::size_t> when comparing distance() to size().
These replacements were performed programmatically with regex_replace():
const vector<pair<regex, string>> reg_fmt = {
{ regex(R"(assert\((\w+)\.size\(\) == std::distance\((\w+, \w+)\)\))"),
"assert($1.size() == static_cast<std::size_t>(std::distance($2)))" },
{ regex(R"(assert\(distance\((\w+\.begin\(\), \w+\.end\(\))\) == (\w+)\.size\(\)\))"),
"assert(static_cast<std::size_t>(distance($1)) == $2.size())" },
{ regex(R"(assert\(std::distance\((\w+\.\w*begin\(\), \w+\.\w*end\(\))\) == (\w+)\.size\(\)\))"),
"assert(static_cast<std::size_t>(std::distance($1)) == $2.size())" },
};
Also, include <cstddef> when it wasn't already being included.
llvm-svn: 288745
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch overhalls the libc++ test format/configuration in order to fully support modules. By "fully support" I mean get almost all of the tests passing. The main hurdle for doing this is handling tests that `#define _LIBCPP_FOO` macros to test a different configuration. This patch deals with these tests in the following ways:
1. For tests that define single `_LIBCPP_ABI_FOO` macros have been annotated with `// MODULES_DEFINES: _LIBCPP_ABI_FOO`. This allows the test suite to define the macro on the command line so it uses a different set of modules.
2. Tests for libc++'s debug mode (which define custom `_LIBCPP_ASSERT`) are automatically detected by the test suite and are compiled and run with modules disabled.
This patch also cleans up how the `CXXCompiler` helper class handles enabling/disabling language features.
NOTE: This patch uses `LIT` features which were only committed to LLVM today. If this patch breaks running the libc++ tests you probably need to update LLVM.
llvm-svn: 288728
|
|
|
|
| |
llvm-svn: 288573
|
|
|
|
| |
llvm-svn: 288566
|
|
|
|
| |
llvm-svn: 288559
|
|
|
|
| |
llvm-svn: 288557
|
|
|
|
| |
llvm-svn: 288556
|
|
|
|
| |
llvm-svn: 288554
|
|
|
|
|
|
| |
This patch was reviewed as https://reviews.llvm.org/D23263.
llvm-svn: 288547
|
|
|
|
| |
llvm-svn: 288544
|
|
|
|
| |
llvm-svn: 288538
|
|
|
|
| |
llvm-svn: 288536
|
|
|
|
|
|
|
|
| |
Replace throw with TEST_THROW and protect tests that do throw. Also add missing assert(false).
Differential Revision: https://reviews.llvm.org/D27252
llvm-svn: 288383
|
|
|
|
|
|
|
|
| |
Skip tests that expect an exception be thrown.
Differential Revision: https://reviews.llvm.org/D27253
llvm-svn: 288382
|
|
|
|
|
|
|
|
| |
Replace throw with TEST_THROW and skip tests that throw exceptions
Differential Revision: https://reviews.llvm.org/D27254
llvm-svn: 288379
|
|
|
|
|
|
|
|
| |
Skip test that throws an exception.
Differential Revision: https://reviews.llvm.org/D27255
llvm-svn: 288378
|
|
|
|
|
|
|
|
| |
Skip tests that expect exceptions be thrown. Also add missing asserts.
Differential Revision: https://reviews.llvm.org/D27095
llvm-svn: 288165
|
|
|
|
|
|
|
|
|
| |
Skip tests that expect an exception be thrown and/or disable
unreachable catch handlers.
Differential Revision: https://reviews.llvm.org/D26612
llvm-svn: 288158
|
|
|
|
|
|
|
|
| |
Skip tests that use exceptions
Differential Revision: https://reviews.llvm.org/D27093
llvm-svn: 288157
|
|
|
|
|
|
|
|
| |
Skip tests that expect exceptions be thrown.
Differential Revision: https://reviews.llvm.org/D27096
llvm-svn: 288156
|
|
|
|
|
|
| |
for the ones in std::
llvm-svn: 287988
|
|
|
|
| |
llvm-svn: 287981
|
|
|
|
|
|
| |
I managed to confuse me with two reviews of the same thing and ended commiting the wrong one.
llvm-svn: 287868
|
|
|
|
|
|
|
|
| |
Skip tests that expect an exception be thrown.
Differential Revision: https://reviews.llvm.org/D26606
llvm-svn: 287866
|
|
|
|
|
|
|
|
|
| |
Skip tests that expect an exception be thrown and/or disable
unreachable catch handlers.
Differential Revision: https://reviews.llvm.org/D26608
llvm-svn: 287865
|
|
|
|
| |
llvm-svn: 287829
|
|
|
|
| |
llvm-svn: 287828
|
|
|
|
|
|
|
|
|
|
| |
signed/unsigned mismatch", part 7/12.
When initializing unsigned integers to their maximum values, change "const T M(~0);" to "const T M(static_cast<T>(-1));".
~0 and -1 are equivalent, but I consider the -1 form to be significantly clearer (and more consistent with other tests).
llvm-svn: 287827
|
|
|
|
|
|
|
|
| |
signed/unsigned mismatch", part 6/12.
Add static_cast when initializing unsigned integers with negative numbers (in order to obtain big values).
llvm-svn: 287826
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
part 5/12.
Various changes:
test/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search.pass.cpp
Change M from unsigned to int. It's compared against "int x",
and we binary_search() for it within a vector<int>.
test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval.pass.cpp
test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval_param.pass.cpp
Add static_cast<unsigned> when comparing int to unsigned.
test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp
Change unsigned indices to int when we're being given int as a bound.
llvm-svn: 287825
|
|
|
|
|
|
|
|
|
|
| |
part 4/12.
Change "int j;" indices to "std::size_t j;".
Also, include <cstddef> when it wasn't already being included.
llvm-svn: 287824
|
|
|
|
|
|
|
|
| |
part 3/12.
Change unsigned to int in parameters.
llvm-svn: 287823
|
|
|
|
|
|
|
|
|
|
| |
part 2/12.
Add static_cast<std::size_t> when comparing int to std::size_t.
Also, include <cstddef> when it wasn't already being included.
llvm-svn: 287822
|
|
|
|
|
|
|
|
|
|
| |
part 1/12.
Change loop indices from int to std::size_t.
Also, include <cstddef> when it wasn't already being included.
llvm-svn: 287820
|
|
|
|
|
|
| |
Differential review: https://reviews.llvm.org/D27029
llvm-svn: 287732
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: The `max_size()` method of containers should respect both the allocator's reported `max_size` and the range of the `difference_type`. This patch makes all containers choose the smallest of those two values.
Reviewers: mclow.lists, EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D26885
llvm-svn: 287729
|
|
|
|
| |
llvm-svn: 287728
|
|
|
|
|
|
| |
define macros to expose the new ABI
llvm-svn: 287513
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a warning.
In C++11 mode and newer, use real static_asserts.
In C++03 mode, min() and max() aren't constexpr, so use plain asserts.
One test triggers MSVC's warning C4310 "cast truncates constant value".
The code is valid, and yet the warning is valid, so I'm silencing it
through push-disable-pop.
llvm-svn: 287391
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sample() isn't specified with a reproducible algorithm, so expecting
exact output is non-Standard. Mark those tests with LIBCPP_ASSERT.
In test_small_population(), we're guaranteed to get all of the elements,
but not necessarily in their original order. When PopulationCategory is
forward, we're guaranteed stability (and can therefore test equal()).
Otherwise, we can only test is_permutation(). (As it happens, both libcxx
and MSVC's STL provide stability in this scenario for input-only iterators.)
llvm-svn: 287383
|
|
|
|
|
|
|
|
|
|
|
| |
std::functions.
The Standard doesn't provide any guarantees beyond "valid but unspecified" for
moved-from std::functions. libcxx moves from small targets and leaves them
there, while MSVC's STL empties out the source. Mark these assertions as
libcxx-specific.
llvm-svn: 287382
|
|
|
|
|
|
|
|
|
|
| |
N4582 17.6.3.5 [allocator.requirements] says that allocators are given
cv-unqualified object types, and N4582 20.9.9 [default.allocator]
implies that allocator<const T> is ill-formed (due to colliding
address() overloads). Therefore, tests for allocator<const T>
should be marked as libcxx-specific (if not removed outright).
llvm-svn: 287381
|
|
|
|
|
|
| |
any/optional/variant". Patch from Casey Carter
llvm-svn: 287249
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and istream_iterator. No code changes were needed, but I updated a few tests. Also resolved P0509 and P0521, which required no changes to the library or tests."
This reverts commit r286884, because it breaks the Xcode 7 builders:
http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-expensive/1583
Here is a PR that tracks the issue:
https://llvm.org/bugs/show_bug.cgi?id=31016
llvm-svn: 287004
|