Modify optimisation flags for various functions. This fixes non-determinism issues in the asm produced for these function when cross-compiling on x86_64 and aarch64 for the arm64-apple-darwin HOST. --- a/qtbase/src/corelib/itemmodels/qitemselectionmodel.cpp +++ b/qtbase/src/corelib/itemmodels/qitemselectionmodel.cpp @@ -1078,9 +1078,9 @@ void QItemSelectionModelPrivate::_q_layoutChanged(const QList &parents = QList(), QAbstractItemModel::LayoutChangeHint hint = QAbstractItemModel::NoLayoutChangeHint); - void _q_layoutChanged(const QList &parents = QList(), QAbstractItemModel::LayoutChangeHint hint = QAbstractItemModel::NoLayoutChangeHint); + __attribute__ ((optnone)) void _q_layoutChanged(const QList &parents = QList(), QAbstractItemModel::LayoutChangeHint hint = QAbstractItemModel::NoLayoutChangeHint); inline void remove(QList &r) { --- a/qtbase/src/corelib/time/qdatetimeparser_p.h +++ b/qtbase/src/corelib/time/qdatetimeparser_p.h @@ -215,7 +215,7 @@ private: : value(ok == Invalid ? -1 : val), used(read), zeroes(zs), state(ok) {} }; - ParsedSection parseSection(const QDateTime ¤tValue, int sectionIndex, + __attribute__ ((optnone)) ParsedSection parseSection(const QDateTime ¤tValue, int sectionIndex, int offset, QString *text) const; int findMonth(const QString &str1, int monthstart, int sectionIndex, int year, QString *monthName = nullptr, int *used = nullptr) const; --- a/qtbase/src/corelib/time/qtimezoneprivate_p.h +++ b/qtbase/src/corelib/time/qtimezoneprivate_p.h @@ -191,7 +191,7 @@ public: virtual ~QUtcTimeZonePrivate(); // Fall-back for UTC[+-]\d+(:\d+){,2} IDs. - static qint64 offsetFromUtcString(const QByteArray &id); + static __attribute__ ((optnone)) qint64 offsetFromUtcString(const QByteArray &id); QUtcTimeZonePrivate *clone() const override; --- a/qtbase/src/widgets/widgets/qcalendarwidget.cpp +++ b/qtbase/src/widgets/widgets/qcalendarwidget.cpp @@ -329,13 +329,13 @@ class QCalendarYearValidator : public QCalendarDateSectionValidator public: QCalendarYearValidator(); - virtual Section handleKey(int key) override; + __attribute__ ((optnone)) virtual Section handleKey(int key) override; virtual QDate applyToDate(QDate date, QCalendar cal) const override; virtual void setDate(QDate date, QCalendar cal) override; virtual QString text() const override; virtual QString text(QDate date, QCalendar cal, int repeat) const override; private: - int pow10(int n); + __attribute__ ((optnone)) int pow10(int n); int m_pos; int m_year; int m_oldYear;