Details
-
Bug
-
Resolution: Invalid
-
P2: Important
-
None
-
6.5.2
-
None
Description
I am trying to fix compilation with Qt 6.5.2 on Manjaro in this project:
And I am getting following error message:
In file included from /usr/include/qt6/QtTest/qtesteventloop.h:8, from /usr/include/qt6/QtTest/qsignalspy.h:11, from /usr/include/qt6/QtTest/QtTest:10, from deviceinfoprovider_test.h:35, from deviceinfoprovider_test.cpp:35: /usr/include/qt6/QtTest/qtestcase.h: In instantiation of ‘bool QTest::qCompare(const T1&, const T2&, const char*, const char*, const char*, int) [with T1 = QDomDocument::ParseResult; T2 = bool]’: deviceinfoprovider_test.cpp:50:5: required from here /usr/include/qt6/QtTest/qtestcase.h:585:34: error: no match for ‘operator==’ (operand types are ‘const QDomDocument::ParseResult’ and ‘const bool’) 585 | return compare_helper(t1 == t2, "Compared values are not the same", | ~~~^~~~~ /usr/include/qt6/QtTest/qtestcase.h:585:34: note: candidate: ‘operator==(int, int)’ (built-in) /usr/include/qt6/QtTest/qtestcase.h:585:34: note: no known conversion for argument 1 from ‘const QDomDocument::ParseResult’ to ‘int’ In file included from /usr/include/qt6/QtCore/qcborvalue.h:9, from /usr/include/qt6/QtCore/qcborarray.h:7, from /usr/include/qt6/QtCore/QtCore:44, from /usr/include/qt6/QtTest/QtTestDepends:3, from /usr/include/qt6/QtTest/QtTest:3:
I believe there is missing const in QDomDocument::ParseResult operator bool at
https://github.com/qt/qtbase/blob/0f0ab90cf60a7169c365c8c9f46b7ccd379a10d1/src/xml/dom/qdom.h#L281
I am not sure if this is feature of Qt or C++ compiler it self and I am not 100% sure that I understand correctly the error message.
However, replacement of mentioned line of code like this solved issue for me:
- QCOMPARE(m_xmlDoc->setContent(m_xmlFile), true); + QCOMPARE(m_xmlDoc->setContent(m_xmlFile).errorMessage.isEmpty(), true);