[libcxx] [test] D27268: Fix MSVC x64 warning C4267 "conversion from 'size_t' 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
This commit is contained in:
parent
baa547b996
commit
f41847c401
|
@ -23,9 +23,9 @@
|
|||
struct TestT {
|
||||
int x;
|
||||
int size;
|
||||
constexpr TestT(std::initializer_list<int> il) : x(*il.begin()), size(il.size()) {}
|
||||
constexpr TestT(std::initializer_list<int> il) : x(*il.begin()), size(static_cast<int>(il.size())) {}
|
||||
constexpr TestT(std::initializer_list<int> il, const int*)
|
||||
: x(*il.begin()), size(il.size()) {}
|
||||
: x(*il.begin()), size(static_cast<int>(il.size())) {}
|
||||
};
|
||||
|
||||
int main()
|
||||
|
|
|
@ -69,11 +69,11 @@ struct TestBase {
|
|||
}
|
||||
template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
|
||||
explicit TestBase(std::initializer_list<int>& il, int = 0) noexcept
|
||||
: value(il.size()) {
|
||||
: value(static_cast<int>(il.size())) {
|
||||
++alive; ++constructed; ++value_constructed;
|
||||
}
|
||||
template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
|
||||
explicit TestBase(std::initializer_list<int>& il, int = 0) noexcept : value(il.size()) {
|
||||
explicit TestBase(std::initializer_list<int>& il, int = 0) noexcept : value(static_cast<int>(il.size())) {
|
||||
++alive; ++constructed; ++value_constructed;
|
||||
}
|
||||
TestBase& operator=(int xvalue) noexcept {
|
||||
|
@ -135,9 +135,9 @@ struct ValueBase {
|
|||
template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
|
||||
constexpr ValueBase(int, int y) : value(y) {}
|
||||
template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
|
||||
explicit constexpr ValueBase(std::initializer_list<int>& il, int = 0) : value(il.size()) {}
|
||||
explicit constexpr ValueBase(std::initializer_list<int>& il, int = 0) : value(static_cast<int>(il.size())) {}
|
||||
template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
|
||||
constexpr ValueBase(std::initializer_list<int>& il, int = 0) : value(il.size()) {}
|
||||
constexpr ValueBase(std::initializer_list<int>& il, int = 0) : value(static_cast<int>(il.size())) {}
|
||||
TEST_CONSTEXPR_CXX14 ValueBase& operator=(int xvalue) noexcept {
|
||||
value = xvalue;
|
||||
return *this;
|
||||
|
@ -193,9 +193,9 @@ struct TrivialValueBase {
|
|||
template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
|
||||
constexpr TrivialValueBase(int, int y) : value(y) {}
|
||||
template <bool Dummy = true, typename std::enable_if<Dummy && Explicit, bool>::type = true>
|
||||
explicit constexpr TrivialValueBase(std::initializer_list<int>& il, int = 0) : value(il.size()) {}
|
||||
explicit constexpr TrivialValueBase(std::initializer_list<int>& il, int = 0) : value(static_cast<int>(il.size())) {}
|
||||
template <bool Dummy = true, typename std::enable_if<Dummy && !Explicit, bool>::type = true>
|
||||
constexpr TrivialValueBase(std::initializer_list<int>& il, int = 0) : value(il.size()) {};
|
||||
constexpr TrivialValueBase(std::initializer_list<int>& il, int = 0) : value(static_cast<int>(il.size())) {}
|
||||
int value;
|
||||
protected:
|
||||
constexpr TrivialValueBase() noexcept : value(0) {}
|
||||
|
|
|
@ -59,12 +59,12 @@ public:
|
|||
int outstanding_new;
|
||||
int new_called;
|
||||
int delete_called;
|
||||
int last_new_size;
|
||||
std::size_t last_new_size;
|
||||
|
||||
int outstanding_array_new;
|
||||
int new_array_called;
|
||||
int delete_array_called;
|
||||
int last_new_array_size;
|
||||
std::size_t last_new_array_size;
|
||||
|
||||
public:
|
||||
void newCalled(std::size_t s)
|
||||
|
@ -174,12 +174,12 @@ public:
|
|||
return disable_checking || n != delete_called;
|
||||
}
|
||||
|
||||
bool checkLastNewSizeEq(int n) const
|
||||
bool checkLastNewSizeEq(std::size_t n) const
|
||||
{
|
||||
return disable_checking || n == last_new_size;
|
||||
}
|
||||
|
||||
bool checkLastNewSizeNotEq(int n) const
|
||||
bool checkLastNewSizeNotEq(std::size_t n) const
|
||||
{
|
||||
return disable_checking || n != last_new_size;
|
||||
}
|
||||
|
@ -214,12 +214,12 @@ public:
|
|||
return disable_checking || n != delete_array_called;
|
||||
}
|
||||
|
||||
bool checkLastNewArraySizeEq(int n) const
|
||||
bool checkLastNewArraySizeEq(std::size_t n) const
|
||||
{
|
||||
return disable_checking || n == last_new_array_size;
|
||||
}
|
||||
|
||||
bool checkLastNewArraySizeNotEq(int n) const
|
||||
bool checkLastNewArraySizeNotEq(std::size_t n) const
|
||||
{
|
||||
return disable_checking || n != last_new_array_size;
|
||||
}
|
||||
|
@ -304,10 +304,10 @@ struct RequireAllocationGuard {
|
|||
void requireExactly(std::size_t N) { m_req_alloc = N; m_exactly = true; }
|
||||
|
||||
~RequireAllocationGuard() {
|
||||
assert(globalMemCounter.checkOutstandingNewEq(m_outstanding_new_on_init));
|
||||
assert(globalMemCounter.checkOutstandingNewEq(static_cast<int>(m_outstanding_new_on_init)));
|
||||
std::size_t Expect = m_new_count_on_init + m_req_alloc;
|
||||
assert(globalMemCounter.checkNewCalledEq(Expect) ||
|
||||
(!m_exactly && globalMemCounter.checkNewCalledGreaterThan(Expect)));
|
||||
assert(globalMemCounter.checkNewCalledEq(static_cast<int>(Expect)) ||
|
||||
(!m_exactly && globalMemCounter.checkNewCalledGreaterThan(static_cast<int>(Expect))));
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
Loading…
Reference in New Issue