From 22e0ebd883256379d950ee94de9ba9c92ecf0113 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Wed, 21 Jul 2010 10:15:25 +0200 Subject: tst_moc: workaround gcc bug. The gcc bug was already work arounded, but moc did not understand the defines and generated the slot anyway why it would not exist with gcc < 4.4 --- tests/auto/moc/tst_moc.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/auto/moc/tst_moc.cpp b/tests/auto/moc/tst_moc.cpp index d871540..d3a7e03 100644 --- a/tests/auto/moc/tst_moc.cpp +++ b/tests/auto/moc/tst_moc.cpp @@ -1344,18 +1344,21 @@ signals: class QTBUG12260_defaultTemplate_Object : public QObject { Q_OBJECT public slots: -#if !(defined(Q_CC_GNU) && __GNUC__ == 4 && __GNUC_MINOR__ <= 3) //gcc bug, this does not compile - void doSomething(QHash values = QHash()) { Q_UNUSED(values); } +#if !(defined(Q_CC_GNU) && __GNUC__ == 4 && __GNUC_MINOR__ <= 3) || defined(Q_MOC_RUN) + void doSomething(QHash values = QHash() ) { Q_UNUSED(values); } +#else + // we want to test the previous function, but gcc < 4.4 seemed to have a bug similar to the one moc has. + typedef QHash WorkaroundGCCBug; + void doSomething(QHash values = WorkaroundGCCBug() ) { Q_UNUSED(values); } #endif + void doAnotherThing(bool a = (1 < 3), bool b = (1 > 4)) { Q_UNUSED(a); Q_UNUSED(b); } }; void tst_Moc::QTBUG12260_defaultTemplate() { -#if !(defined(Q_CC_GNU) && __GNUC__ == 4 && __GNUC_MINOR__ <= 3) QVERIFY(QTBUG12260_defaultTemplate_Object::staticMetaObject.indexOfSlot("doSomething(QHash)") != -1); -#endif QVERIFY(QTBUG12260_defaultTemplate_Object::staticMetaObject.indexOfSlot("doAnotherThing(bool,bool)") != -1); } -- cgit v0.12