[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
{
public:
    enum Property
    {
        Id,
        ServerUid
    };

    typedef QMailSortKeyArgument<Property> ArgumentType;

public:
<snip>
    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
=============
http://www.linux.codehelp.co.uk/

Attachment: pgpFrMKWafcU1.pgp
Description: PGP signature


Reply to: