diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2012-12-21 18:26:09 -0800 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-01-28 04:02:45 +0100 |
commit | add16725a34f7d249c9e93d9ecbfc0c7cc488d80 (patch) | |
tree | 0c5d67dfc3c156bd210adeaecfa890e430cf2114 | |
parent | 8a0a09f6d1cbeba0a88402c4318b1caaefa90d06 (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.h | 24 |
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 |