fix sign comparison warnings

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290469 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Fiselier
2016-12-24 00:24:44 +00:00
parent 0e5ebbc77c
commit 50f6579e74
6 changed files with 35 additions and 36 deletions

View File

@@ -163,7 +163,7 @@ __find_bool_true(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type
{ {
typedef __bit_iterator<_Cp, _IsConst> _It; typedef __bit_iterator<_Cp, _IsConst> _It;
typedef typename _It::__storage_type __storage_type; typedef typename _It::__storage_type __storage_type;
static const unsigned __bits_per_word = _It::__bits_per_word; static const int __bits_per_word = _It::__bits_per_word;
// do first partial word // do first partial word
if (__first.__ctz_ != 0) if (__first.__ctz_ != 0)
{ {
@@ -199,7 +199,7 @@ __find_bool_false(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type
{ {
typedef __bit_iterator<_Cp, _IsConst> _It; typedef __bit_iterator<_Cp, _IsConst> _It;
typedef typename _It::__storage_type __storage_type; typedef typename _It::__storage_type __storage_type;
static const unsigned __bits_per_word = _It::__bits_per_word; const int __bits_per_word = _It::__bits_per_word;
// do first partial word // do first partial word
if (__first.__ctz_ != 0) if (__first.__ctz_ != 0)
{ {
@@ -251,7 +251,7 @@ __count_bool_true(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type
typedef __bit_iterator<_Cp, _IsConst> _It; typedef __bit_iterator<_Cp, _IsConst> _It;
typedef typename _It::__storage_type __storage_type; typedef typename _It::__storage_type __storage_type;
typedef typename _It::difference_type difference_type; typedef typename _It::difference_type difference_type;
static const unsigned __bits_per_word = _It::__bits_per_word; const int __bits_per_word = _It::__bits_per_word;
difference_type __r = 0; difference_type __r = 0;
// do first partial word // do first partial word
if (__first.__ctz_ != 0) if (__first.__ctz_ != 0)
@@ -282,7 +282,7 @@ __count_bool_false(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_typ
typedef __bit_iterator<_Cp, _IsConst> _It; typedef __bit_iterator<_Cp, _IsConst> _It;
typedef typename _It::__storage_type __storage_type; typedef typename _It::__storage_type __storage_type;
typedef typename _It::difference_type difference_type; typedef typename _It::difference_type difference_type;
static const unsigned __bits_per_word = _It::__bits_per_word; const int __bits_per_word = _It::__bits_per_word;
difference_type __r = 0; difference_type __r = 0;
// do first partial word // do first partial word
if (__first.__ctz_ != 0) if (__first.__ctz_ != 0)
@@ -324,7 +324,7 @@ __fill_n_false(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n)
{ {
typedef __bit_iterator<_Cp, false> _It; typedef __bit_iterator<_Cp, false> _It;
typedef typename _It::__storage_type __storage_type; typedef typename _It::__storage_type __storage_type;
static const unsigned __bits_per_word = _It::__bits_per_word; const int __bits_per_word = _It::__bits_per_word;
// do first partial word // do first partial word
if (__first.__ctz_ != 0) if (__first.__ctz_ != 0)
{ {
@@ -354,7 +354,7 @@ __fill_n_true(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n)
{ {
typedef __bit_iterator<_Cp, false> _It; typedef __bit_iterator<_Cp, false> _It;
typedef typename _It::__storage_type __storage_type; typedef typename _It::__storage_type __storage_type;
static const unsigned __bits_per_word = _It::__bits_per_word; const int __bits_per_word = _It::__bits_per_word;
// do first partial word // do first partial word
if (__first.__ctz_ != 0) if (__first.__ctz_ != 0)
{ {
@@ -412,7 +412,7 @@ __copy_aligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsCon
typedef __bit_iterator<_Cp, _IsConst> _In; typedef __bit_iterator<_Cp, _IsConst> _In;
typedef typename _In::difference_type difference_type; typedef typename _In::difference_type difference_type;
typedef typename _In::__storage_type __storage_type; typedef typename _In::__storage_type __storage_type;
static const unsigned __bits_per_word = _In::__bits_per_word; const int __bits_per_word = _In::__bits_per_word;
difference_type __n = __last - __first; difference_type __n = __last - __first;
if (__n > 0) if (__n > 0)
{ {
@@ -461,7 +461,7 @@ __copy_unaligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsC
typedef __bit_iterator<_Cp, _IsConst> _In; typedef __bit_iterator<_Cp, _IsConst> _In;
typedef typename _In::difference_type difference_type; typedef typename _In::difference_type difference_type;
typedef typename _In::__storage_type __storage_type; typedef typename _In::__storage_type __storage_type;
static const unsigned __bits_per_word = _In::__bits_per_word; static const int __bits_per_word = _In::__bits_per_word;
difference_type __n = __last - __first; difference_type __n = __last - __first;
if (__n > 0) if (__n > 0)
{ {
@@ -551,7 +551,7 @@ __copy_backward_aligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_C
typedef __bit_iterator<_Cp, _IsConst> _In; typedef __bit_iterator<_Cp, _IsConst> _In;
typedef typename _In::difference_type difference_type; typedef typename _In::difference_type difference_type;
typedef typename _In::__storage_type __storage_type; typedef typename _In::__storage_type __storage_type;
static const unsigned __bits_per_word = _In::__bits_per_word; const int __bits_per_word = _In::__bits_per_word;
difference_type __n = __last - __first; difference_type __n = __last - __first;
if (__n > 0) if (__n > 0)
{ {
@@ -600,7 +600,7 @@ __copy_backward_unaligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<
typedef __bit_iterator<_Cp, _IsConst> _In; typedef __bit_iterator<_Cp, _IsConst> _In;
typedef typename _In::difference_type difference_type; typedef typename _In::difference_type difference_type;
typedef typename _In::__storage_type __storage_type; typedef typename _In::__storage_type __storage_type;
static const unsigned __bits_per_word = _In::__bits_per_word; const int __bits_per_word = _In::__bits_per_word;
difference_type __n = __last - __first; difference_type __n = __last - __first;
if (__n > 0) if (__n > 0)
{ {
@@ -718,7 +718,7 @@ __swap_ranges_aligned(__bit_iterator<__C1, false> __first, __bit_iterator<__C1,
typedef __bit_iterator<__C1, false> _I1; typedef __bit_iterator<__C1, false> _I1;
typedef typename _I1::difference_type difference_type; typedef typename _I1::difference_type difference_type;
typedef typename _I1::__storage_type __storage_type; typedef typename _I1::__storage_type __storage_type;
static const unsigned __bits_per_word = _I1::__bits_per_word; const int __bits_per_word = _I1::__bits_per_word;
difference_type __n = __last - __first; difference_type __n = __last - __first;
if (__n > 0) if (__n > 0)
{ {
@@ -768,7 +768,7 @@ __swap_ranges_unaligned(__bit_iterator<__C1, false> __first, __bit_iterator<__C1
typedef __bit_iterator<__C1, false> _I1; typedef __bit_iterator<__C1, false> _I1;
typedef typename _I1::difference_type difference_type; typedef typename _I1::difference_type difference_type;
typedef typename _I1::__storage_type __storage_type; typedef typename _I1::__storage_type __storage_type;
static const unsigned __bits_per_word = _I1::__bits_per_word; const int __bits_per_word = _I1::__bits_per_word;
difference_type __n = __last - __first; difference_type __n = __last - __first;
if (__n > 0) if (__n > 0)
{ {
@@ -959,7 +959,7 @@ __equal_unaligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1>
typedef __bit_iterator<_Cp, _IC1> _It; typedef __bit_iterator<_Cp, _IC1> _It;
typedef typename _It::difference_type difference_type; typedef typename _It::difference_type difference_type;
typedef typename _It::__storage_type __storage_type; typedef typename _It::__storage_type __storage_type;
static const unsigned __bits_per_word = _It::__bits_per_word; static const int __bits_per_word = _It::__bits_per_word;
difference_type __n = __last1 - __first1; difference_type __n = __last1 - __first1;
if (__n > 0) if (__n > 0)
{ {
@@ -1041,7 +1041,7 @@ __equal_aligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __
typedef __bit_iterator<_Cp, _IC1> _It; typedef __bit_iterator<_Cp, _IC1> _It;
typedef typename _It::difference_type difference_type; typedef typename _It::difference_type difference_type;
typedef typename _It::__storage_type __storage_type; typedef typename _It::__storage_type __storage_type;
static const unsigned __bits_per_word = _It::__bits_per_word; static const int __bits_per_word = _It::__bits_per_word;
difference_type __n = __last1 - __first1; difference_type __n = __last1 - __first1;
if (__n > 0) if (__n > 0)
{ {

View File

@@ -2735,7 +2735,7 @@ deque<_Tp, _Allocator>::erase(const_iterator __f)
difference_type __pos = __f - __b; difference_type __pos = __f - __b;
iterator __p = __b + __pos; iterator __p = __b + __pos;
allocator_type& __a = __base::__alloc(); allocator_type& __a = __base::__alloc();
if (__pos <= (__base::size() - 1) / 2) if (static_cast<size_t>(__pos) <= (__base::size() - 1) / 2)
{ // erase from front { // erase from front
_VSTD::move_backward(__b, __p, _VSTD::next(__p)); _VSTD::move_backward(__b, __p, _VSTD::next(__p));
__alloc_traits::destroy(__a, _VSTD::addressof(*__b)); __alloc_traits::destroy(__a, _VSTD::addressof(*__b));
@@ -2773,7 +2773,7 @@ deque<_Tp, _Allocator>::erase(const_iterator __f, const_iterator __l)
if (__n > 0) if (__n > 0)
{ {
allocator_type& __a = __base::__alloc(); allocator_type& __a = __base::__alloc();
if (__pos <= (__base::size() - __n) / 2) if (static_cast<size_t>(__pos) <= (__base::size() - __n) / 2)
{ // erase from front { // erase from front
iterator __i = _VSTD::move_backward(__b, __p, __p + __n); iterator __i = _VSTD::move_backward(__b, __p, __p + __n);
for (; __b != __i; ++__b) for (; __b != __i; ++__b)

View File

@@ -1647,7 +1647,7 @@ operator>>(basic_istream<_CharT, _Traits>& __is, bitset<_Size>& __x)
{ {
basic_string<_CharT, _Traits> __str; basic_string<_CharT, _Traits> __str;
const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__is.getloc()); const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__is.getloc());
streamsize __c = 0; size_t __c = 0;
ios_base::iostate __err = ios_base::goodbit; ios_base::iostate __err = ios_base::goodbit;
_CharT __zero = __ct.widen('0'); _CharT __zero = __ct.widen('0');
_CharT __one = __ct.widen('1'); _CharT __one = __ct.widen('1');

View File

@@ -2817,6 +2817,7 @@ class _LIBCPP_TYPE_VIS_ONLY discard_block_engine
static_assert( 0 < __r, "discard_block_engine invalid parameters"); static_assert( 0 < __r, "discard_block_engine invalid parameters");
static_assert(__r <= __p, "discard_block_engine invalid parameters"); static_assert(__r <= __p, "discard_block_engine invalid parameters");
static_assert(__r <= INT_MAX, "discard_block_engine invalid parameters");
public: public:
// types // types
typedef typename _Engine::result_type result_type; typedef typename _Engine::result_type result_type;
@@ -2918,7 +2919,7 @@ template<class _Engine, size_t __p, size_t __r>
typename discard_block_engine<_Engine, __p, __r>::result_type typename discard_block_engine<_Engine, __p, __r>::result_type
discard_block_engine<_Engine, __p, __r>::operator()() discard_block_engine<_Engine, __p, __r>::operator()()
{ {
if (__n_ >= __r) if (__n_ >= static_cast<int>(__r))
{ {
__e_.discard(__p - __r); __e_.discard(__p - __r);
__n_ = 0; __n_ = 0;

View File

@@ -6186,7 +6186,7 @@ private:
_Position __position_; _Position __position_;
const value_type* __result_; const value_type* __result_;
value_type __suffix_; value_type __suffix_;
ptrdiff_t _N_; ptrdiff_t __n_;
vector<int> __subs_; vector<int> __subs_;
public: public:
@@ -6269,10 +6269,10 @@ public:
private: private:
void __init(_BidirectionalIterator __a, _BidirectionalIterator __b); void __init(_BidirectionalIterator __a, _BidirectionalIterator __b);
void __establish_result () { void __establish_result () {
if (__subs_[_N_] == -1) if (__subs_[__n_] == -1)
__result_ = &__position_->prefix(); __result_ = &__position_->prefix();
else else
__result_ = &(*__position_)[__subs_[_N_]]; __result_ = &(*__position_)[__subs_[__n_]];
} }
}; };
@@ -6281,7 +6281,7 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::
regex_token_iterator() regex_token_iterator()
: __result_(nullptr), : __result_(nullptr),
__suffix_(), __suffix_(),
_N_(0) __n_(0)
{ {
} }
@@ -6292,7 +6292,7 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::
{ {
if (__position_ != _Position()) if (__position_ != _Position())
__establish_result (); __establish_result ();
else if (__subs_[_N_] == -1) else if (__subs_[__n_] == -1)
{ {
__suffix_.matched = true; __suffix_.matched = true;
__suffix_.first = __a; __suffix_.first = __a;
@@ -6309,7 +6309,7 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::
const regex_type& __re, int __submatch, const regex_type& __re, int __submatch,
regex_constants::match_flag_type __m) regex_constants::match_flag_type __m)
: __position_(__a, __b, __re, __m), : __position_(__a, __b, __re, __m),
_N_(0), __n_(0),
__subs_(1, __submatch) __subs_(1, __submatch)
{ {
__init(__a, __b); __init(__a, __b);
@@ -6321,7 +6321,7 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::
const regex_type& __re, const vector<int>& __submatches, const regex_type& __re, const vector<int>& __submatches,
regex_constants::match_flag_type __m) regex_constants::match_flag_type __m)
: __position_(__a, __b, __re, __m), : __position_(__a, __b, __re, __m),
_N_(0), __n_(0),
__subs_(__submatches) __subs_(__submatches)
{ {
__init(__a, __b); __init(__a, __b);
@@ -6336,7 +6336,7 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::
initializer_list<int> __submatches, initializer_list<int> __submatches,
regex_constants::match_flag_type __m) regex_constants::match_flag_type __m)
: __position_(__a, __b, __re, __m), : __position_(__a, __b, __re, __m),
_N_(0), __n_(0),
__subs_(__submatches) __subs_(__submatches)
{ {
__init(__a, __b); __init(__a, __b);
@@ -6352,7 +6352,7 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::
const int (&__submatches)[_Np], const int (&__submatches)[_Np],
regex_constants::match_flag_type __m) regex_constants::match_flag_type __m)
: __position_(__a, __b, __re, __m), : __position_(__a, __b, __re, __m),
_N_(0), __n_(0),
__subs_(__submatches, __submatches + _Np) __subs_(__submatches, __submatches + _Np)
{ {
__init(__a, __b); __init(__a, __b);
@@ -6364,7 +6364,7 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::
: __position_(__x.__position_), : __position_(__x.__position_),
__result_(__x.__result_), __result_(__x.__result_),
__suffix_(__x.__suffix_), __suffix_(__x.__suffix_),
_N_(__x._N_), __n_(__x.__n_),
__subs_(__x.__subs_) __subs_(__x.__subs_)
{ {
if (__x.__result_ == &__x.__suffix_) if (__x.__result_ == &__x.__suffix_)
@@ -6386,7 +6386,7 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::
else else
__result_ = __x.__result_; __result_ = __x.__result_;
__suffix_ = __x.__suffix_; __suffix_ = __x.__suffix_;
_N_ = __x._N_; __n_ = __x.__n_;
__subs_ = __x.__subs_; __subs_ = __x.__subs_;
if ( __result_ != nullptr && __result_ != &__suffix_ ) if ( __result_ != nullptr && __result_ != &__suffix_ )
@@ -6409,7 +6409,7 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::
return false; return false;
if (__result_ == &__suffix_ || __x.__result_ == &__x.__suffix_) if (__result_ == &__suffix_ || __x.__result_ == &__x.__suffix_)
return false; return false;
return __position_ == __x.__position_ && _N_ == __x._N_ && return __position_ == __x.__position_ && __n_ == __x.__n_ &&
__subs_ == __x.__subs_; __subs_ == __x.__subs_;
} }
@@ -6420,14 +6420,14 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::operator++()
_Position __prev = __position_; _Position __prev = __position_;
if (__result_ == &__suffix_) if (__result_ == &__suffix_)
__result_ = nullptr; __result_ = nullptr;
else if (_N_ + 1 < __subs_.size()) else if (static_cast<size_t>(__n_ + 1) < __subs_.size())
{ {
++_N_; ++__n_;
__establish_result(); __establish_result();
} }
else else
{ {
_N_ = 0; __n_ = 0;
++__position_; ++__position_;
if (__position_ != _Position()) if (__position_ != _Position())
__establish_result(); __establish_result();

View File

@@ -659,13 +659,11 @@ class Configuration(object):
# These warnings should be enabled in order to support the MSVC # These warnings should be enabled in order to support the MSVC
# team using the test suite; They enable the warnings below and # team using the test suite; They enable the warnings below and
# expect the test suite to be clean. # expect the test suite to be clean.
self.cxx.addWarningFlagIfSupported('-Wno-sign-compare') self.cxx.addWarningFlagIfSupported('-Wsign-compare')
self.cxx.addWarningFlagIfSupported('-Wunused-variable') self.cxx.addWarningFlagIfSupported('-Wunused-variable')
self.cxx.addWarningFlagIfSupported('-Wunused-parameter') self.cxx.addWarningFlagIfSupported('-Wunused-parameter')
# FIXME: Enable the two warnings below. # FIXME: Enable the two warnings below.
self.cxx.addWarningFlagIfSupported('-Wno-conversion') self.cxx.addWarningFlagIfSupported('-Wno-conversion')
# TODO(EricWF) Remove the unused warnings once the test suite
# compiles clean with them.
self.cxx.addWarningFlagIfSupported('-Wno-unused-local-typedef') self.cxx.addWarningFlagIfSupported('-Wno-unused-local-typedef')
std = self.get_lit_conf('std', None) std = self.get_lit_conf('std', None)
if std in ['c++98', 'c++03']: if std in ['c++98', 'c++03']: