| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Differential review: http://reviews.llvm.org/D27436
llvm-svn: 288760
|
| |
|
|
| |
llvm-svn: 288755
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to 'int' [or 'unsigned int'], possible loss of data", part 3/4.
test/std/containers/sequences/vector.bool/copy.pass.cpp
test/std/containers/sequences/vector.bool/copy_alloc.pass.cpp
test/std/containers/sequences/vector/vector.cons/copy.pass.cpp
test/std/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp
Change "unsigned s = x.size();" to "typename C::size_type s = x.size();"
because that's what it returns.
test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp
Include <cstddef>, then change "unsigned n = T::length(s);"
to "std::size_t n = T::length(s);" because that's what char_traits returns.
test/std/strings/basic.string/string.cons/substr.pass.cpp
Change unsigned to typename S::size_type because that's what str.size() returns.
test/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp
This was needlessly truncating std::size_t to unsigned.
It's being used to compare and initialize std::size_t.
llvm-svn: 288753
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
to 'int' [or 'unsigned int'], possible loss of data", part 2/4.
Use static_cast<int> when storing size_t in int (or passing size_t to int).
Also, remove a spurious semicolon in test/support/archetypes.hpp.
test/support/count_new.hpp
Additionally, change data members (and parameters) to size_t.
llvm-svn: 288752
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 288743
|
| |
|
|
|
|
|
|
|
|
| |
The Clang modules implementation breaks enough that libc++ needs an easy way
to enable/disable using modules on the Zorg builders. Editing Zorg itself
requires a buildmaster restart which only happens weekly. This patch
allows LIBCXX_USE_MODULES to be used to enable/disable the feature,
allowing the buildslave to disable it as need be.
llvm-svn: 288736
|
| |
|
|
| |
llvm-svn: 288735
|
| |
|
|
| |
llvm-svn: 288733
|
| |
|
|
| |
llvm-svn: 288730
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
It's useful to be able to disable visibility annotations entirely; for
example, if we're building libc++ static to include in another library,
and we don't want any libc++ functions getting exported out of that
library. This is a generalization of _LIBCPP_DISABLE_DLL_IMPORT_EXPORT.
Differential Revision: https://reviews.llvm.org/D26934
llvm-svn: 288690
|
| |
|
|
|
|
|
|
|
|
| |
Under libcpp-no-exceptions, noexcept is trivially true. Some tests expect in
the usual setting to return false, so adjust them to expect true under
libcpp-no-exceptions.
Differential Revision: https://reviews.llvm.org/D27310
llvm-svn: 288660
|
| |
|
|
| |
llvm-svn: 288625
|
| |
|
|
|
|
|
|
|
|
|
| |
Previously these hashes were 0 and -1 respectively. These seem like common
sentinel values and should be avoided to prevent needless collisions.
This patch changes those values to different arbitrary numbers, which should
hopefully cause less collisions. Because I couldn't help myself I choose the
fundamental constants for gravity and the speed of light.
llvm-svn: 288623
|
| |
|
|
| |
llvm-svn: 288576
|
| |
|
|
| |
llvm-svn: 288575
|
| |
|
|
| |
llvm-svn: 288574
|
| |
|
|
| |
llvm-svn: 288573
|
| |
|
|
| |
llvm-svn: 288571
|
| |
|
|
| |
llvm-svn: 288566
|
| |
|
|
| |
llvm-svn: 288564
|
| |
|
|
| |
llvm-svn: 288559
|
| |
|
|
| |
llvm-svn: 288557
|
| |
|
|
| |
llvm-svn: 288556
|
| |
|
|
| |
llvm-svn: 288555
|
| |
|
|
| |
llvm-svn: 288554
|
| |
|
|
| |
llvm-svn: 288552
|
| |
|
|
| |
llvm-svn: 288551
|
| |
|
|
| |
llvm-svn: 288550
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
This test expects an exception be thrown.
Differential Revision: https://reviews.llvm.org/D26611
llvm-svn: 288155
|
| |
|
|
|
|
|
|
|
| |
The macro _LIBCPP_UNROLL_LOOPS isn't used anywhere
so the code was dead.
Differential Revision: https://reviews.llvm.org/D26991
llvm-svn: 288143
|