summaryrefslogtreecommitdiffstats
path: root/tests/auto/tools/moc/tst_moc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/tools/moc/tst_moc.cpp')
-rw-r--r--tests/auto/tools/moc/tst_moc.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp
index 6a84eb244a..f3abe9b5ff 100644
--- a/tests/auto/tools/moc/tst_moc.cpp
+++ b/tests/auto/tools/moc/tst_moc.cpp
@@ -373,6 +373,11 @@ public slots:
public:
Q_INVOKABLE void const slotWithSillyConst2() {}
+ Q_INVOKABLE QObject& myInvokableReturningRef()
+ { return *this; }
+ Q_INVOKABLE const QObject& myInvokableReturningConstRef() const
+ { return *this; }
+
// that one however should be fine
public slots:
@@ -530,6 +535,7 @@ private slots:
void privateClass();
void cxx11Enums_data();
void cxx11Enums();
+ void returnRefs();
signals:
void sigWithUnsignedArg(unsigned foo);
@@ -1687,6 +1693,16 @@ void tst_Moc::cxx11Enums()
}
}
+void tst_Moc::returnRefs()
+{
+ TestClass tst;
+ const QMetaObject *mobj = tst.metaObject();
+ QVERIFY(mobj->indexOfMethod("myInvokableReturningRef()") != -1);
+ QVERIFY(mobj->indexOfMethod("myInvokableReturningConstRef()") != -1);
+ // Those two functions are copied from the qscriptextqobject test in qtscript
+ // they used to cause miscompilation of the moc generated file.
+}
+
QTEST_APPLESS_MAIN(tst_Moc)
#include "tst_moc.moc"