Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
Qt Creator 14.0.2
-
None
Description
GIVEN qt5.git project open with qtactiveqt at 6.9 beta 2 (ie. pre https://codereview.qt-project.org/c/qt/qtactiveqt/+/620466), qaxwidget.h open in the editor
WHEN copying the #ifndef QT_NO_DATASTREAM block from outside the class to just before the }; of the class, hitting CTRL-I to re-indent, replacing inline with friend, placing the cursor on the operator>>, hitting ATL-Enter and selecting "Move defintition to qaxwidget.cpp".
THEN QtC hangs with 100% CPU for a few minutes. Attaching gdb to get a backtrace gives
x00007f2d01d465d8 in CPlusPlus::ClassOrNamespace::lookupType_helper(CPlusPlus::Name const*, QSet<CPlusPlus::ClassOrNamespace*>*, bool, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 (gdb) where #0 0x00007f2d01d465d8 in CPlusPlus::ClassOrNamespace::lookupType_helper(CPlusPlus::Name const*, QSet<CPlusPlus::ClassOrNamespace*>*, bool, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #1 0x00007f2d01d46ab1 in CPlusPlus::ClassOrNamespace::lookupType(CPlusPlus::Name const*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #2 0x00007f2d01d48bbb in CPlusPlus::CreateBindings::lookupType(QList<CPlusPlus::Name const*> const&, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #3 0x00007f2d01d48c6a in CPlusPlus::CreateBindings::lookupType(CPlusPlus::Symbol*, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #4 0x00007f2d01d4a58d in CPlusPlus::CreateBindings::visit(CPlusPlus::Function*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #5 0x00007f2d01d0c6a0 in CPlusPlus::Function::visitSymbol0(CPlusPlus::SymbolVisitor*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #6 0x00007f2d01d0b780 in CPlusPlus::Symbol::visitSymbol(CPlusPlus::SymbolVisitor*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #7 0x00007f2d01d3fa2c in CPlusPlus::CreateBindings::visit(CPlusPlus::Template*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #8 0x00007f2d01d0c7f0 in CPlusPlus::Template::visitSymbol0(CPlusPlus::SymbolVisitor*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #9 0x00007f2d01d0b780 in CPlusPlus::Symbol::visitSymbol(CPlusPlus::SymbolVisitor*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #10 0x00007f2d01d407f1 in CPlusPlus::CreateBindings::process(CPlusPlus::Symbol*, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #11 0x00007f2d01d40887 in CPlusPlus::ClassOrNamespace::flush() () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #12 0x00007f2d01d465a8 in CPlusPlus::ClassOrNamespace::lookupType_helper(CPlusPlus::Name const*, QSet<CPlusPlus::ClassOrNamespace*>*, bool, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #13 0x00007f2d01d46ab1 in CPlusPlus::ClassOrNamespace::lookupType(CPlusPlus::Name const*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #14 0x00007f2d01d48be8 in CPlusPlus::CreateBindings::lookupType(QList<CPlusPlus::Name const*> const&, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #15 0x00007f2d01d48c6a in CPlusPlus::CreateBindings::lookupType(CPlusPlus::Symbol*, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #16 0x00007f2d01d49a9f in CPlusPlus::LookupContext::lookupType(CPlusPlus::Symbol*, CPlusPlus::ClassOrNamespace*) const () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #17 0x00007f2d021622c0 in CppEditor::SymbolFinder::findMatchingDefinition(CPlusPlus::Symbol*, CPlusPlus::Snapshot const&, bool) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libCppEditor.so #18 0x00007f2d020b4080 in CppEditor::InsertionPointLocator::methodDefinition(CPlusPlus::Symbol*, bool, Utils::FilePath const&) const () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libCppEditor.so #19 0x00007f2d020b53a1 in CppEditor::insertLocationForMethodDefinition(CPlusPlus::Symbol*, bool, CppEditor::NamespaceHandling, CppEditor::CppRefactoringChanges const&, Utils::FilePath const&, QList<QString>*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libCppEditor.so #20 0x00007f2d02136d7b in ?? () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libCppEditor.so #21 0x00007f2d02137ed8 in ?? () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libCppEditor.so #22 0x00007f2d0c591b51 in TextEditor::AssistProposalItem::applyQuickFix(TextEditor::TextDocumentManipulatorInterface&, int) const () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libTextEditor.so #23 0x00007f2d0c595859 in ?? () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libTextEditor.so #24 0x00007f2d19ac666a in ?? () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #25 0x00007f2d0c55cf32 in TextEditor::IAssistProposalWidget::proposalItemActivated(TextEditor::AssistProposalItemInterface*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libTextEditor.so #26 0x00007f2d0c5a2261 in TextEditor::GenericProposalWidget::activateCurrentProposalItem() () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libTextEditor.so #27 0x00007f2d0c5a2a83 in TextEditor::GenericProposalWidget::eventFilter(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libTextEditor.so #28 0x00007f2d19a67aaa in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #29 0x00007f2d1adb5621 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Widgets.so.6 #30 0x00007f2d1adbe1a3 in QApplication::notify(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Widgets.so.6 #31 0x00007f2d19a67d3a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #32 0x00007f2d1ae224c3 in ?? () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Widgets.so.6 #33 0x00007f2d1adb5632 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Widgets.so.6 #34 0x00007f2d19a67d3a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #35 0x00007f2d1a3f822b in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Gui.so.6 #36 0x00007f2d1a455d5c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Gui.so.6 #37 0x00007f2d1573f04a in ?? () from /d/Qt/Tools/QtCreator/lib/Qt/lib/libQt6XcbQpa.so.6 #38 0x00007f2d1667217d in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #39 0x00007f2d16672400 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #40 0x00007f2d166724a3 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #41 0x00007f2d19d20afa in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #42 0x00007f2d19a73573 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #43 0x00007f2d19a7000e in QCoreApplication::exec() () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #44 0x000000000040f3f8 in ?? () #45 0x00007f2d193c7083 in __libc_start_main (main=0x40b3d0, argc=4, argv=0x7fffd0f19c28, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffd0f19c18) at ../csu/libc-start.c:308 #46 0x000000000040fb2e in ?? () (gdb) #0 0x00007f2d01d465d8 in CPlusPlus::ClassOrNamespace::lookupType_helper(CPlusPlus::Name const*, QSet<CPlusPlus::ClassOrNamespace*>*, bool, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #1 0x00007f2d01d46ab1 in CPlusPlus::ClassOrNamespace::lookupType(CPlusPlus::Name const*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #2 0x00007f2d01d48bbb in CPlusPlus::CreateBindings::lookupType(QList<CPlusPlus::Name const*> const&, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #3 0x00007f2d01d48c6a in CPlusPlus::CreateBindings::lookupType(CPlusPlus::Symbol*, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #4 0x00007f2d01d4a58d in CPlusPlus::CreateBindings::visit(CPlusPlus::Function*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #5 0x00007f2d01d0c6a0 in CPlusPlus::Function::visitSymbol0(CPlusPlus::SymbolVisitor*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #6 0x00007f2d01d0b780 in CPlusPlus::Symbol::visitSymbol(CPlusPlus::SymbolVisitor*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #7 0x00007f2d01d3fa2c in CPlusPlus::CreateBindings::visit(CPlusPlus::Template*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #8 0x00007f2d01d0c7f0 in CPlusPlus::Template::visitSymbol0(CPlusPlus::SymbolVisitor*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #9 0x00007f2d01d0b780 in CPlusPlus::Symbol::visitSymbol(CPlusPlus::SymbolVisitor*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #10 0x00007f2d01d407f1 in CPlusPlus::CreateBindings::process(CPlusPlus::Symbol*, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #11 0x00007f2d01d40887 in CPlusPlus::ClassOrNamespace::flush() () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #12 0x00007f2d01d465a8 in CPlusPlus::ClassOrNamespace::lookupType_helper(CPlusPlus::Name const*, QSet<CPlusPlus::ClassOrNamespace*>*, bool, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #13 0x00007f2d01d46ab1 in CPlusPlus::ClassOrNamespace::lookupType(CPlusPlus::Name const*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #14 0x00007f2d01d48be8 in CPlusPlus::CreateBindings::lookupType(QList<CPlusPlus::Name const*> const&, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #15 0x00007f2d01d48c6a in CPlusPlus::CreateBindings::lookupType(CPlusPlus::Symbol*, CPlusPlus::ClassOrNamespace*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #16 0x00007f2d01d49a9f in CPlusPlus::LookupContext::lookupType(CPlusPlus::Symbol*, CPlusPlus::ClassOrNamespace*) const () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/../libCPlusPlus.so.14 #17 0x00007f2d021622c0 in CppEditor::SymbolFinder::findMatchingDefinition(CPlusPlus::Symbol*, CPlusPlus::Snapshot const&, bool) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libCppEditor.so #18 0x00007f2d020b4080 in CppEditor::InsertionPointLocator::methodDefinition(CPlusPlus::Symbol*, bool, Utils::FilePath const&) const () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libCppEditor.so #19 0x00007f2d020b53a1 in CppEditor::insertLocationForMethodDefinition(CPlusPlus::Symbol*, bool, CppEditor::NamespaceHandling, CppEditor::CppRefactoringChanges const&, Utils::FilePath const&, QList<QString>*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libCppEditor.so #20 0x00007f2d02136d7b in ?? () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libCppEditor.so #21 0x00007f2d02137ed8 in ?? () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libCppEditor.so #22 0x00007f2d0c591b51 in TextEditor::AssistProposalItem::applyQuickFix(TextEditor::TextDocumentManipulatorInterface&, int) const () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libTextEditor.so #23 0x00007f2d0c595859 in ?? () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libTextEditor.so #24 0x00007f2d19ac666a in ?? () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #25 0x00007f2d0c55cf32 in TextEditor::IAssistProposalWidget::proposalItemActivated(TextEditor::AssistProposalItemInterface*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libTextEditor.so #26 0x00007f2d0c5a2261 in TextEditor::GenericProposalWidget::activateCurrentProposalItem() () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libTextEditor.so #27 0x00007f2d0c5a2a83 in TextEditor::GenericProposalWidget::eventFilter(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/lib/qtcreator/plugins/libTextEditor.so #28 0x00007f2d19a67aaa in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #29 0x00007f2d1adb5621 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Widgets.so.6 #30 0x00007f2d1adbe1a3 in QApplication::notify(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Widgets.so.6 #31 0x00007f2d19a67d3a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #32 0x00007f2d1ae224c3 in ?? () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Widgets.so.6 #33 0x00007f2d1adb5632 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Widgets.so.6 #34 0x00007f2d19a67d3a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #35 0x00007f2d1a3f822b in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Gui.so.6 #36 0x00007f2d1a455d5c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Gui.so.6 #37 0x00007f2d1573f04a in ?? () from /d/Qt/Tools/QtCreator/lib/Qt/lib/libQt6XcbQpa.so.6 #38 0x00007f2d1667217d in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #39 0x00007f2d16672400 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #40 0x00007f2d166724a3 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #41 0x00007f2d19d20afa in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #42 0x00007f2d19a73573 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #43 0x00007f2d19a7000e in QCoreApplication::exec() () from /d/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6 #44 0x000000000040f3f8 in ?? () #45 0x00007f2d193c7083 in __libc_start_main (main=0x40b3d0, argc=4, argv=0x7fffd0f19c28, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffd0f19c18)
It eventually completes, but the function has (incorrectly) the class scope in front, even though it's a friend.