Rohan: Because no one more-authoritative has answered you, I'll give it a try.
I think that this occurs because QVariant must have sufficiently-strict alignment constraints to hold, properly aligned, the largest POD datum that can be stored in the variant. Other, more-specific objects may be known to not have such a large POD datum within them and so may have looser alignment requirements. When the more-loosely aligned object is cast to an object type with tighter alignment constraints, the compiler objects. In this exact case, it doesn't look like it will hurt you, but I think it would be good to code this in such a way as to avoid the warning (without disabling the warning). Unfortunately, I have no advice on how to do this. Atlant -----Original Message----- From: development-bounces+aschmidt=dekaresearch....@qt-project.org [mailto:development-bounces+aschmidt=dekaresearch....@qt-project.org] On Behalf Of Rohan McGovern Sent: Tuesday, March 06, 2012 18:35 To: development Subject: [Development] cast ... increases required alignment of target type [-Werror=cast-align] Does anyone have a suggestion on how to fix this warning? This code in qlist.h: 409: template <typename T> 410: Q_INLINE_TEMPLATE void QList<T>::node_destruct(Node *from, Node *to) 411: { 412: if (QTypeInfo<T>::isLarge || QTypeInfo<T>::isStatic) 413: while(from != to) --to, delete reinterpret_cast<T*>(to->v); 414: else if (QTypeInfo<T>::isComplex) 415: while (from != to) --to, reinterpret_cast<T*>(to)->~T(); 416: } ...when compiled for ARM, causes this warning (or error with -Werror): src/corelib/tools/qlist.h: In member function ‘void QList<T>::node_destruct(QList<T>::Node*, QList<T>::Node*) [with T = QVariant]’: src/corelib/tools/qlist.h:738:5: instantiated from ‘void QList<T>::dealloc(QListData::Data*) [with T = QVariant]’ src/corelib/tools/qlist.h:714:9: instantiated from ‘QList<T>::~QList() [with T = QVariant]’ src/corelib/statemachine/qstatemachine.h:81:59: instantiated from here src/corelib/tools/qlist.h:415:28: error: cast from ‘QList<QVariant>::Node*’ to ‘QVariant*’ increases required alignment of target type [-Werror=cast-align] "do not compile with -Wcast-align" may be a valid answer, but it would be good to hear from someone who can confidently say whether or not this issue can actually harm us in practice. _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development Click https://www.mailcontrol.com/sr/QilNO59cSRvTndxI!oX7UsdpzMR7Bo2K9vbOG+MDi5IDPn0IJCwStGrlGy1xFX8KHjzlD+HXh2sua8zCo+pDiw== to report this email as spam. This e-mail and the information, including any attachments, it contains are intended to be a confidential communication only to the person or entity to whom it is addressed and may contain information that is privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the sender and destroy the original message. Thank you. Please consider the environment before printing this email. _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development