aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2023-01-13 03:41:37 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-01-13 20:41:24 +0000
commita947a9bcd46bb0248911187a68354b4c695d6c5d (patch)
tree45ea318d20dfbf7eb02b7c127cb9ef1f5ab5ebc3
parent7eab465199e41634c4c65db494c4185cace9f77a (diff)
Ignore a spurious -Wuse-after-free by GCC
GCC 13 seems to have a false positive here: In copy constructor 'QSharedPointer<T>::QSharedPointer(const QSharedPointer<T>&) [with T = const QQmlJSScope]', inlined from 'QDeferredSharedPointer<T>::QDeferredSharedPointer(QSharedPointer<T>) [with T = const QQmlJSScope]' at QQmlJSScope.cpp:33:11, inlined from 'Data::ConstPtr Data::get() const' at QQmlJSScope.cpp:244:37: /home/peppe/p/src/qt5/qtbase/build/include/QtCore/../../../src/corelib/tools/qsharedpointer_impl.h:296:80: warning: pointer used after 'void operator delete(void*)' [-Wuse-after-free] In static member function 'static void QtSharedPointer::ExternalRefCountData::operator delete(void*)', inlined from 'QWeakPointer<T>::~QWeakPointer() [with T = const QQmlJSScope]' at /home/peppe/p/src/qt5/qtbase/build/include/QtCore/../../../src/corelib/tools/qsharedpointer_impl.h:543:60, inlined from 'QWeakPointer<T>::~QWeakPointer() [with T = const QQmlJSScope]' at /home/peppe/p/src/qt5/qtbase/build/include/QtCore/../../../src/corelib/tools/qsharedpointer_impl.h:543:12, inlined from 'QSharedPointer<T> QDeferredWeakPointer<T>::toStrongRef() const [with T = const QQmlJSScope]' at QQmlJSScope.cpp:186:16, inlined from 'Data::ConstPtr Data::get() const' at QQmlJSScope.cpp:244:36: /home/peppe/p/src/qt5/qtbase/build/include/QtCore/../../../src/corelib/tools/qsharedpointer_impl.h:130:67: note: call to 'void operator delete(void*)' here This makes qtdeclarative FTBFS in release builds. Change-Id: If7a7565a68a7eaa0770c41e4e7ad1288b460e7ef Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 1d72f21415609ce7a8b665a71776d7ac26f1d4ee) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/qmlcompiler/qqmljsscope_p.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/qmlcompiler/qqmljsscope_p.h b/src/qmlcompiler/qqmljsscope_p.h
index 127d58abcc..f5b0c4aedb 100644
--- a/src/qmlcompiler/qqmljsscope_p.h
+++ b/src/qmlcompiler/qqmljsscope_p.h
@@ -303,7 +303,12 @@ public:
QQmlJSScope::ConstPtr parentScope() const
{
+QT_WARNING_PUSH
+#if defined(Q_CC_GNU_ONLY) && Q_CC_GNU < 1400
+ QT_WARNING_DISABLE_GCC("-Wuse-after-free")
+#endif
return QQmlJSScope::WeakConstPtr(m_parentScope).toStrongRef();
+QT_WARNING_POP
}
static void reparent(const QQmlJSScope::Ptr &parentScope, const QQmlJSScope::Ptr &childScope);