[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#667341: optimisation tests

Dropping the optimisation on src/libraries/qmfclient/ from -O2 to -O1 fixes the issue:

# objdump -C -t src/libraries/qmfclient/build/libqmfclient.so.1.0.0 |grep QMailThreadSort|grep serial|cut -d' ' -f5-
  F .text	0000000000000012              void QMailThreadSortKey::serialize<QDataStream>(QDataStream&) const
  F .text	00000000000000a1              void MailSortKeyImpl<QMailThreadSortKey>::deserialize<QDataStream>(QDataStream&)
  F .text	0000000000000048              void QMailThreadSortKey::deserialize<QDataStream>(QDataStream&)
  F .text	00000000000000cb              void MailSortKeyImpl<QMailThreadSortKey>::serialize<QDataStream>(QDataStream&) const

.. albeit defining a pair of new symbols...

The functions themselves are public.

class QMF_EXPORT QMailThreadSortKey
    enum Property

    typedef QMailSortKeyArgument<Property> ArgumentType;

    bool isEmpty() const;

    const QList<ArgumentType> &arguments() const;

    template <typename Stream> void serialize(Stream &stream) const;
    template <typename Stream> void deserialize(Stream &stream);

Why is gcc-4.7 overriding the class and optimising away a public symbol
in -O2 when it does not in -O1 or in gcc-4.6 with -O2?


Neil Williams

Attachment: pgpFrMKWafcU1.pgp
Description: PGP signature

Reply to: