summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2012-12-21 18:26:09 -0800
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-01-28 04:02:45 +0100
commitadd16725a34f7d249c9e93d9ecbfc0c7cc488d80 (patch)
tree0c5d67dfc3c156bd210adeaecfa890e430cf2114
parent8a0a09f6d1cbeba0a88402c4318b1caaefa90d06 (diff)
Don't use the union trick to do unlawful casts
GCC 4.7 is printing this (bogus) warning: qobject.h:166:15: warning: 'QObject::findChildren(const QString&, Qt::FindChildOptions) const [with T = QMenuBar*; Qt::FindChildOptions = QFlags<Qt::FindChildOption>]::<anonymous union>' declared with greater visibility than the type of its field 'QObject::findChildren(const QString&, Qt::FindChildOptions) const [with T = QMenuBar*; Qt::FindChildOptions = QFlags<Qt::FindChildOption>]::<anonymous union>::typedList' [-Wattributes] Change-Id: I2d1c365e3191f3a5c7b2241deb35f0ae47d79afc Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r--src/corelib/kernel/qobject.h24
1 files changed, 6 insertions, 18 deletions
diff --git a/src/corelib/kernel/qobject.h b/src/corelib/kernel/qobject.h
index 632d97ca65..a2d7dcd7ef 100644
--- a/src/corelib/kernel/qobject.h
+++ b/src/corelib/kernel/qobject.h
@@ -163,12 +163,8 @@ public:
inline QList<T> findChildren(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
{
QList<T> list;
- union {
- QList<T> *typedList;
- QList<void *> *voidList;
- } u;
- u.typedList = &list;
- qt_qFindChildren_helper(this, aName, reinterpret_cast<T>(0)->staticMetaObject, u.voidList, options);
+ qt_qFindChildren_helper(this, aName, reinterpret_cast<T>(0)->staticMetaObject,
+ reinterpret_cast<QList<void *> *>(&list), options);
return list;
}
@@ -177,12 +173,8 @@ public:
inline QList<T> findChildren(const QRegExp &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
{
QList<T> list;
- union {
- QList<T> *typedList;
- QList<void *> *voidList;
- } u;
- u.typedList = &list;
- qt_qFindChildren_helper(this, re, reinterpret_cast<T>(0)->staticMetaObject, u.voidList, options);
+ qt_qFindChildren_helper(this, re, reinterpret_cast<T>(0)->staticMetaObject,
+ reinterpret_cast<QList<void *> *>(&list), options);
return list;
}
#endif
@@ -192,12 +184,8 @@ public:
inline QList<T> findChildren(const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
{
QList<T> list;
- union {
- QList<T> *typedList;
- QList<void *> *voidList;
- } u;
- u.typedList = &list;
- qt_qFindChildren_helper(this, re, reinterpret_cast<T>(0)->staticMetaObject, u.voidList, options);
+ qt_qFindChildren_helper(this, re, reinterpret_cast<T>(0)->staticMetaObject,
+ reinterpret_cast<QList<void *> *>(&list), options);
return list;
}
#endif