summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qvector.h
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2017-06-01 17:42:09 +0200
committerAndy Shaw <andy.shaw@qt.io>2017-08-08 08:06:03 +0000
commit425aa282df1d0e90c8337f49223c8bc7e9a970b3 (patch)
tree4b6fc811be7a5dd32ed1810f6f305fcdc2c8a26d /src/corelib/tools/qvector.h
parent1e1a2c7397e626160a3ecfb5151cc7f9d20bebe7 (diff)
Win: Account for when "condition expression is constant" warning occurs
There is already some case accounting for when this warning appears with warning level 4 and Visual C++ on Windows. However it was not catching all the places it was coming from, so this extends it to cover those places too. Change-Id: I69b21440716361fda1c1ae0be0d9c17ced7f0792 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/tools/qvector.h')
-rw-r--r--src/corelib/tools/qvector.h37
1 files changed, 23 insertions, 14 deletions
diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h
index 57e80ae125..da15d401e3 100644
--- a/src/corelib/tools/qvector.h
+++ b/src/corelib/tools/qvector.h
@@ -310,6 +310,7 @@ private:
// will be default-initialized
# pragma warning ( push )
# pragma warning ( disable : 4345 )
+# pragma warning(disable : 4127) // conditional expression is constant
#endif
template <typename T>
@@ -324,10 +325,6 @@ void QVector<T>::defaultConstruct(T *from, T *to)
}
}
-#ifdef Q_CC_MSVC
-# pragma warning ( pop )
-#endif
-
template <typename T>
void QVector<T>::copyConstruct(const T *srcFrom, const T *srcTo, T *dstFrom)
{
@@ -339,11 +336,6 @@ void QVector<T>::copyConstruct(const T *srcFrom, const T *srcTo, T *dstFrom)
}
}
-#if defined(Q_CC_MSVC)
-#pragma warning( push )
-#pragma warning( disable : 4127 ) // conditional expression is constant
-#endif
-
template <typename T>
void QVector<T>::destruct(T *from, T *to)
{
@@ -354,10 +346,6 @@ void QVector<T>::destruct(T *from, T *to)
}
}
-#if defined(Q_CC_MSVC)
-#pragma warning( pop )
-#endif
-
template <typename T>
inline QVector<T>::QVector(const QVector<T> &v)
{
@@ -379,6 +367,10 @@ inline QVector<T>::QVector(const QVector<T> &v)
}
}
+#if defined(Q_CC_MSVC)
+#pragma warning( pop )
+#endif
+
template <typename T>
void QVector<T>::detach()
{
@@ -506,6 +498,11 @@ QVector<T>::QVector(int asize, const T &t)
}
#ifdef Q_COMPILER_INITIALIZER_LISTS
+# if defined(Q_CC_MSVC)
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_MSVC(4127) // conditional expression is constant
+# endif // Q_CC_MSVC
+
template <typename T>
QVector<T>::QVector(std::initializer_list<T> args)
{
@@ -520,7 +517,10 @@ QVector<T>::QVector(std::initializer_list<T> args)
d = Data::sharedNull();
}
}
-#endif
+# if defined(Q_CC_MSVC)
+QT_WARNING_POP
+# endif // Q_CC_MSVC
+#endif // Q_COMPILER_INITALIZER_LISTS
template <typename T>
void QVector<T>::freeData(Data *x)
@@ -529,6 +529,11 @@ void QVector<T>::freeData(Data *x)
Data::deallocate(x);
}
+#if defined(Q_CC_MSVC)
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_MSVC(4127) // conditional expression is constant
+#endif
+
template <typename T>
void QVector<T>::reallocData(const int asize, const int aalloc, QArrayData::AllocationOptions options)
{
@@ -620,6 +625,10 @@ void QVector<T>::reallocData(const int asize, const int aalloc, QArrayData::Allo
Q_ASSERT(d->size == asize);
}
+#if defined(Q_CC_MSVC)
+QT_WARNING_POP
+#endif
+
template<typename T>
Q_OUTOFLINE_TEMPLATE T QVector<T>::value(int i) const
{