summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools
diff options
context:
space:
mode:
authorBradley T. Hughes <bradley.hughes@nokia.com>2011-12-06 13:34:15 +0100
committerQt by Nokia <qt-info@nokia.com>2011-12-06 18:37:54 +0100
commitb6e9ff22a376ae94b884a22c85f89f4c37056e5e (patch)
tree5a26e1939c3f277e8a84f7ba5bb2110b2c959446 /tests/auto/corelib/tools
parent841f445c7ffb89e016929a92d1a7af71a85e3e3e (diff)
Fix tst_QSharedPointer invalidConstructs:forward-declaration failure
When using clang, the forward-declaration test fails to link, unlike with other compilers. The standard says that deleting a forward-declared pointer is undefined behavior, so the link failure is a valid result of trying to do so. Change-Id: I527b91c15b7d51d9522d95af0630e7dacd26bb30 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/tools')
-rw-r--r--tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp b/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp
index e62ee0f051..7eb1bd2dee 100644
--- a/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp
+++ b/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp
@@ -1663,7 +1663,13 @@ void tst_QSharedPointer::invalidConstructs_data()
// use of forward-declared class
QTest::newRow("forward-declaration")
+#ifdef Q_CC_CLANG
+ // Deleting a forward declaration is undefined, which results in a linker error with clang
+ << &QTest::QExternalTest::tryLinkFail
+#else
+ // Other compilers accept the code, but do not call the destructor at run-time
<< &QTest::QExternalTest::tryRun
+#endif
<< "forwardDeclaredDestructorRunCount = 0;\n"
"{ QSharedPointer<ForwardDeclared> ptr = QSharedPointer<ForwardDeclared>(forwardPointer()); }\n"
"exit(forwardDeclaredDestructorRunCount);";