Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-128843

Crash when Qt QML is built with -ltcg flag

    XMLWordPrintable

Details

    • fa26df82d (dev), 097712ae7 (dev), 7a8150c62 (6.8), 126b931c4 (6.8), f6727318c (tqtc/lts-6.5), aeb8c3b7c (tqtc/lts-6.5), bb92ec3be (tqtc/lts-6.2), b3b071f9f (tqtc/lts-6.2)

    Description

      The pre-built libraries from our online installer don't crash. But when the customer built Qt with -ltcg, it crashes the attached project (only in Release mode, not Debug mode):

       

      Exception thrown at 0x00007FFE0D1F7F3D (Qt6QmlRTIL.dll) in appuntitled.exe: 0xC0000005: Access violation reading location 0x0000000000000030.
      Callstack:
      >          Qt6QmlRTIL.dll!QQmlPrivate::AOTCompiledContext::loadAttachedLookup(unsigned int index, QObject * object, void * target) Line 1631  C++
      qtquickcontrols2fusionstylertilplugin.dll!QmlCacheGeneratedCode::_qt_0x2d_project_0x2e_org_imports_QtQuick_Controls_Fusion_Drawer_qml::<lambda_1>::()::__l2::<lambda_1>::operator()(const QQmlPrivate::AOTCompiledContext * aotContext, void * *) Line 964       C++
                 [Inline Frame] qtquickcontrols2fusionstylertilplugin.dll!QmlCacheGeneratedCode::_qt_0x2d_project_0x2e_org_imports_QtQuick_Controls_Fusion_Drawer_qml::wrapCall(const QQmlPrivate::AOTCompiledContext *) Line 948 C++
                 [Inline Frame] qtquickcontrols2fusionstylertilplugin.dll!QmlCacheGeneratedCode::_qt_0x2d_project_0x2e_org_imports_QtQuick_Controls_Fusion_Drawer_qml::<lambda_1>::operator()(const QQmlPrivate::AOTCompiledContext *) Line 958 C++
      qtquickcontrols2fusionstylertilplugin.dll!QmlCacheGeneratedCode::_qt_0x2d_project_0x2e_org_imports_QtQuick_Controls_Fusion_Drawer_qml::<lambda_1>::<lambda_invoker_cdecl>(const QQmlPrivate::AOTCompiledContext * aotContext, void * dataPtr, void * * argumentsPtr) Line 979           C++
                 [Inline Frame] Qt6QmlRTIL.dll!QV4::MetaTypesStackFrame::returnValue() Line 138       C++
                 Qt6QmlRTIL.dll!QV4::Moth::VME::exec(QV4::MetaTypesStackFrame * frame, QV4::ExecutionEngine * engine) Line 507           C++
                 Qt6QmlRTIL.dll!QV4::Function::call(QObject * thisObject, void * * a, const QMetaType * types, int argc, QV4::ExecutionContext * context) Line 39          C++
                 Qt6QmlRTIL.dll!QQmlJavaScriptExpression::evaluate(void * * a, const QMetaType * types, int argc) Line 274            C++
                 [Inline Frame] Qt6QmlRTIL.dll!QQmlBinding::evaluate(void * result, QMetaType type) Line 84     C++
                 Qt6QmlRTIL.dll!QQmlBinding::doUpdate(const QQmlJavaScriptExpression::DeleteWatcher & watcher, QFlags<enum QQmlPropertyData::WriteFlag> flags, QV4::Scope & scope) Line 688      C++
                 Qt6QmlRTIL.dll!QQmlBinding::update(QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 166      C++
                 Qt6QmlRTIL.dll!QQmlBinding::setEnabled(bool e, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 620       C++
                 Qt6QmlRTIL.dll!QV4::QObjectWrapper::getProperty(QV4::ExecutionEngine * engine, QV4::Heap::Object * wrapper, QObject * object, const QQmlPropertyData * property, QFlags<enum QV4::QObjectWrapper::Flag> flags) Line 255       C++
                 Qt6QmlRTIL.dll!QV4::QObjectWrapper::getQmlProperty(QV4::ExecutionEngine * engine, const QQmlRefPointer<QQmlContextData> & qmlContext, QV4::Heap::Object * wrapper, QObject * object, QV4::String * name, QFlags<enum QV4::QObjectWrapper::Flag> flags, bool * hasProperty, const QQmlPropertyData * * property) Line 416           C++
                 Qt6QmlRTIL.dll!QV4::QQmlContextWrapper::getPropertyAndBase(const QV4::QQmlContextWrapper * resource, QV4::PropertyKey id, const QV4::Value * receiver, bool * hasProperty, QV4::Value * base, QV4::Lookup * lookup) Line 324           C++
                 Qt6QmlRTIL.dll!QV4::QQmlContextWrapper::resolveQmlContextPropertyLookupGetter(QV4::Lookup * l, QV4::ExecutionEngine * engine, QV4::Value * base) Line 517    C++
                 Qt6QmlRTIL.dll!QV4::Moth::VME::interpret(QV4::JSTypesStackFrame * frame, QV4::ExecutionEngine * engine, const char * code) Line 678       C++
                 Qt6QmlRTIL.dll!QV4::Moth::VME::exec(QV4::JSTypesStackFrame * frame, QV4::ExecutionEngine * engine) Line 555           C++
                 Qt6QmlRTIL.dll!QV4::doCall(QV4::Function * self, const QV4::Value * thisObject, const QV4::Value * argv, int argc, QV4::ExecutionContext * context) Line 55 C++
                 Qt6QmlRTIL.dll!QQmlJavaScriptExpression::evaluate(QV4::CallData * callData, bool * isUndefined) Line 238            C++
                 Qt6QmlRTIL.dll!QQmlBinding::evaluate(bool * isUndefined) Line 189      C++
                 Qt6QmlRTIL.dll!QQmlBinding::doUpdate(const QQmlJavaScriptExpression::DeleteWatcher & watcher, QFlags<enum QQmlPropertyData::WriteFlag> flags, QV4::Scope & scope) Line 698      C++
                 Qt6QmlRTIL.dll!QQmlBinding::update(QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 166      C++
                 Qt6QmlRTIL.dll!QQmlBinding::setEnabled(bool e, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 620       C++
                 Qt6QmlRTIL.dll!QV4::QObjectWrapper::getProperty(QV4::ExecutionEngine * engine, QV4::Heap::Object * wrapper, QObject * object, const QQmlPropertyData * property, QFlags<enum QV4::QObjectWrapper::Flag> flags) Line 255       C++
      Qt6QmlRTIL.dll!QV4::QObjectWrapper::lookupPropertyGetterImpl<`QV4::Lookup::getterQObject'::`2'::<lambda_1>>(QV4::Lookup * lookup, QV4::ExecutionEngine * engine, const QV4::Value & object, QFlags<enum QV4::QObjectWrapper::Flag> flags, QV4::Lookup::getterQObject::__l2::<lambda_1> revertLookup) Line 298    C++
                 Qt6QmlRTIL.dll!QV4::Lookup::getterQObject(QV4::Lookup * lookup, QV4::ExecutionEngine * engine, const QV4::Value & object) Line 402   C++
                 Qt6QmlRTIL.dll!QV4::QObjectWrapper::virtualResolveLookupGetter(const QV4::Object * object, QV4::ExecutionEngine * engine, QV4::Lookup * lookup) Line 1026         C++
                 Qt6QmlRTIL.dll!QV4::Moth::VME::interpret(QV4::JSTypesStackFrame * frame, QV4::ExecutionEngine * engine, const char * code) Line 743       C++
                 Qt6QmlRTIL.dll!QV4::Moth::VME::exec(QV4::JSTypesStackFrame * frame, QV4::ExecutionEngine * engine) Line 555           C++
                 Qt6QmlRTIL.dll!QV4::doCall(QV4::Function * self, const QV4::Value * thisObject, const QV4::Value * argv, int argc, QV4::ExecutionContext * context) Line 55 C++
                 Qt6QmlRTIL.dll!QQmlJavaScriptExpression::evaluate(QV4::CallData * callData, bool * isUndefined) Line 238            C++
                 Qt6QmlRTIL.dll!QQmlBinding::evaluate(bool * isUndefined) Line 189      C++
                 Qt6QmlRTIL.dll!QQmlBinding::doUpdate(const QQmlJavaScriptExpression::DeleteWatcher & watcher, QFlags<enum QQmlPropertyData::WriteFlag> flags, QV4::Scope & scope) Line 698      C++
                 Qt6QmlRTIL.dll!QQmlBinding::update(QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 166      C++
                 Qt6QmlRTIL.dll!QQmlBinding::setEnabled(bool e, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 620       C++
                 Qt6QmlRTIL.dll!QQmlObjectCreator::finalize(QQmlInstantiationInterrupt & interrupt) Line 1437    C++
                 Qt6QmlRTIL.dll!QQmlComponentPrivate::complete(QQmlEnginePrivate * enginePriv, QQmlComponentPrivate::ConstructionState * state) Line 1140    C++
                 Qt6QmlRTIL.dll!QQmlComponentPrivate::completeCreate() Line 1242   C++
                 Qt6QmlRTIL.dll!QQmlComponentPrivate::createWithProperties(QObject * parent, const QMap<QString,QVariant> & properties, QQmlContext * context, QQmlComponentPrivate::CreateBehavior behavior) Line 959           C++
                 Qt6QmlRTIL.dll!QQmlComponent::create(QQmlContext * context) Line 909       C++
                 Qt6QmlRTIL.dll!QQmlApplicationEnginePrivate::finishLoad(QQmlComponent * c) Line 137         C++
      

      It seems to occur because l->qmlTypeLookup.qmlTypeWrapper is null in the -ltcg libraries, but non-null in the pre-built libraries.

       

      Versions that triggered the crash

      • Visual Studio 17.2, 17.6 17.8 and 17.11
      • Qt 6.5.2 and 6.5.6

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            ulherman Ulf Hermann
            skoh-qt Sze Howe Koh
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: