[umbrello] [Bug 338649] Extend C++ import for C++11

Oliver Kellogg bugzilla_noreply at kde.org
Mon May 3 06:02:12 BST 2021


https://bugs.kde.org/show_bug.cgi?id=338649

--- Comment #20 from Oliver Kellogg <okellogg at users.sourceforge.net> ---
(In reply to milasudril from comment #18)
> Any update on this task?

A added support for C++11 "enum class" and it is working in a Qt4 based build.
However, on trying to import
https://invent.kde.org/sdk/umbrello/-/blob/master/test/import/cxx/cxx11-strongly-typed-enumerations.h
in a Qt5 based build I get a crash:

Application: Umbrello UML Modeller (umbrello5), signal: Aborted
Content of s_kcrashErrorMessage: [Current thread is 1 (Thread 0x7fc078f12e80
(LWP 9736))]
[KCrash Handler]
#6  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#7  0x00007fc07c02c864 in __GI_abort () at abort.c:79
#8  0x00007fc07c60b10b in qt_message_fatal (message=<synthetic pointer>...,
context=...) at global/qlogging.cpp:1914
#9  QMessageLogger::fatal(char const*, ...) const
(this=this at entry=0x7fff14653b78, msg=msg at entry=0x7fc07c90aea0 "ASSERT: \"%s\"
in file 
%s, line %d") at global/qlogging.cpp:893
#10 0x00007fc07c60a558 in qt_assert(char const*, char const*, int)
(assertion=<optimized out>, file=<optimized out>, line=<optimized out
>) at global/qglobal.cpp:3358
#11 0x00000000007b9354 in Lexer::getOffset(QChar const*) const
(this=0x7fff14654468, p=0x1852138) at /tools/umbrello-master/lib/cppparse
r/lexer.h:265
#12 0x00000000007bb835 in Lexer::currentPosition() const (this=0x7fff14654468)
at /tools/umbrello-master/lib/cppparser/lexer.h:853
#13 0x00000000007b4845 in Lexer::nextToken(Token&, bool) (this=0x7fff14654468,
tk=..., stopOnNewline=false) at /tools/umbrello-master/li
b/cppparser/lexer.cpp:255
#14 0x00000000007b660e in Lexer::tokenize() (this=0x7fff14654468) at
/tools/umbrello-master/lib/cppparser/lexer.cpp:497
#15 0x00000000007b3e93 in Lexer::setSource(QString const&)
(this=0x7fff14654468, source=...) at /tools/umbrello-master/lib/cppparser/lex
er.cpp:143
#16 0x00000000007ab000 in Driver::ParseHelper::ParseHelper(QString const&,
bool, Driver*, bool, QString) (this=0x7fff14654420, fileName=
..., force=false, driver=0x10c0260, reportMessages=true, includedFrom=...) at
/tools/umbrello-master/lib/cppparser/driver.cpp:321
#17 0x00000000007a0ebc in Driver::parseFile(QString const&, bool, bool, bool)
(this=0x10c0260, fileName=..., onlyPreProcess=false, force
=false, macrosGlobal=false) at
/tools/umbrello-master/lib/cppparser/driver.cpp:555
#18 0x0000000000777b8e in CppImport::parseFile(QString const&) (this=0x15e51d0,
fileName=...) at /tools/umbrello-master/umbrello/codeimp
ort/cppimport.cpp:145
#19 0x0000000000776edd in ClassImport::importFile(QString const&)
(this=0x15e51d0, fileName=...) at /tools/umbrello-master/umbrello/code
import/classimport.cpp:120
#20 0x000000000050c44c in CodeImpThread::run() (this=0x10cb250) at
/tools/umbrello-master/umbrello/codeimpwizard/codeimpthread.cpp:62
#21 0x0000000000509d8d in CodeImpStatusPage::importCodeFile(bool)
(this=0x7fc07000d050, noError=true) at /tools/umbrello-master/umbrello
/codeimpwizard/codeimpstatuspage.cpp:192
#22 0x00000000005098a9 in CodeImpStatusPage::importCode() (this=0x7fc07000d050)
at /tools/umbrello-master/umbrello/codeimpwizard/codeimp
statuspage.cpp:161
#23 0x0000000000479103 in CodeImpStatusPage::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) (_o=0x7fc07000d050, _c=QMetaOb
ject::InvokeMetaMethod, _id=0, _a=0x7fff14654a40) at
/tools/umbrello-master/build/umbrello/libumbrello_autogen/6MVZBMHENV/moc_codeimpsta
tuspage.cpp:114
#24 0x00007fc07c85fc50 in doActivate<false>(QObject*, int, void**)
(sender=0x1734400, signal_index=9, argv=argv at entry=0x7fff14654a40) at
 kernel/qobject.cpp:3898
#25 0x00007fc07c858f60 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (sender=sender at entry=0x1734400, m=m at entry=0x7
fc07d99f4e0 <QAbstractButton::staticMetaObject>,
local_signal_index=local_signal_index at entry=2, argv=argv at entry=0x7fff14654a40)
at kerne
l/qobject.cpp:3946
#26 0x00007fc07d5736a2 in QAbstractButton::clicked(bool)
(this=this at entry=0x1734400, _t1=<optimized out>) at .moc/moc_qabstractbutton.cp
p:308
#27 0x00007fc07d57391a in QAbstractButtonPrivate::emitClicked()
(this=0x1734440) at widgets/qabstractbutton.cpp:415
#28 0x00007fc07d575970 in QAbstractButtonPrivate::click() (this=0x1734440) at
widgets/qabstractbutton.cpp:408
#29 0x00007fc07d575b91 in QAbstractButton::mouseReleaseEvent(QMouseEvent*)
(this=0x1734400, e=0x7fff14654fc0) at widgets/qabstractbutton
.cpp:1044
#30 0x00007fc07d4c1b4e in QWidget::event(QEvent*) (this=0x1734400,
event=0x7fff14654fc0) at kernel/qwidget.cpp:9019
#31 0x00007fc07d47faff in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=this at entry=0xbbfc00, receiver=receiver at entry=0x173
4400, e=e at entry=0x7fff14654fc0) at kernel/qapplication.cpp:3632
#32 0x00007fc07d4870cb in QApplication::notify(QObject*, QEvent*)
(this=0x7fff14654cf0, receiver=0x1734400, e=0x7fff14654fc0) at kernel/
qapplication.cpp:3076
#33 0x00007fc07c82913a in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x1734400, event=0x7fff14654fc0) at kernel/qcor
eapplication.cpp:1063
#34 0x00007fc07d486103 in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&,
 bool, bool) (receiver=receiver at entry=0x1734400,
event=event at entry=0x7fff14654fc0, alienWidget=alienWidget at entry=0x1734400,
nativeWidget
=0x16de2d0, buttonDown=<optimized out>, lastMouseReceiver=...,
spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cp
p:2614
#35 0x00007fc07d4db0dc in QWidgetWindow::handleMouseEvent(QMouseEvent*)
(this=0x1655bc0, event=0x7fff14655280) at kernel/qwidgetwindow.c
pp:683
#36 0x00007fc07d4de505 in QWidgetWindow::event(QEvent*) (this=0x1655bc0,
event=0x7fff14655280) at kernel/qwidgetwindow.cpp:300
#37 0x00007fc07d47faff in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=<optimized out>, receiver=0x1655bc0, e=0x7fff14655
280) at kernel/qapplication.cpp:3632
#38 0x00007fc07c82913a in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x1655bc0, event=0x7fff14655280) at kernel/qcor
eapplication.cpp:1063
#39 0x00007fc07cd2aff3 in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
(e=0x17b0ec0) at kernel/
qguiapplication.cpp:2282
#40 0x00007fc07cd00c5c in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(flags=flags at entry=...) 
at kernel/qwindowsysteminterface.cpp:1169
#41 0x00007fc076b22c9a in xcbSourceDispatch(GSource*, GSourceFunc, gpointer)
(source=source at entry=0xcb96b0) at qxcbeventdispatcher.cpp:1
05
#42 0x00007fc07a9a7817 in g_main_dispatch (context=0x7fc070005000) at
../glib/gmain.c:3337
#43 g_main_context_dispatch (context=0x7fc070005000) at ../glib/gmain.c:4055
#44 0x00007fc07a9a7b98 in g_main_context_iterate
(context=context at entry=0x7fc070005000, block=block at entry=1,
dispatch=dispatch at entry=1, 
self=<optimized out>) at ../glib/gmain.c:4131
#45 0x00007fc07a9a7c4f in g_main_context_iteration (context=0x7fc070005000,
may_block=may_block at entry=1) at ../glib/gmain.c:4196
#46 0x00007fc07c880d30 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0xcc8a20, flags=...) at kerne
l/qeventdispatcher_glib.cpp:423
#47 0x00007fc07c827b7b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this at entry=0x7fff146555b0, flags=..., flags at entr
y=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#48 0x00007fc07d68ab6a in QDialog::exec() (this=0x16de2d0) at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#49 0x00000000006e9015 in UMLApp::slotImportingWizard() (this=0xd1e1e0) at
/tools/umbrello-master/umbrello/uml.cpp:2792
#50 0x000000000048273b in UMLApp::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) (_o=0xd1e1e0, _c=QMetaObject::InvokeMetaM
ethod, _id=2, _a=0x7fff146557a0) at
/tools/umbrello-master/build/umbrello/libumbrello_autogen/EWIEGA46WW/moc_uml.cpp:483
#51 0x00007fc07c85fc50 in doActivate<false>(QObject*, int, void**)
(sender=0x104a0b0, signal_index=4, argv=argv at entry=0x7fff146557a0) at
 kernel/qobject.cpp:3898
#52 0x00007fc07c858f60 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (sender=sender at entry=0x104a0b0, m=m at entry=0x7
fc07d99a0a0 <QAction::staticMetaObject>,
local_signal_index=local_signal_index at entry=1, argv=argv at entry=0x7fff146557a0)
at kernel/qobjec
t.cpp:3946
#53 0x00007fc07d4791d2 in QAction::triggered(bool) (this=this at entry=0x104a0b0,
_t1=<optimized out>) at .moc/moc_qaction.cpp:376
#54 0x00007fc07d47be28 in QAction::activate(QAction::ActionEvent)
(this=0x104a0b0, event=<optimized out>) at kernel/qaction.cpp:1161
#55 0x00007fc07d6024e2 in
QMenuPrivate::activateCausedStack(QVector<QPointer<QWidget> > const&, QAction*,
QAction::ActionEvent, bool) (t
his=this at entry=0x1171d30, causedStack=..., action=action at entry=0x104a0b0,
action_e=action_e at entry=QAction::Trigger, self=self at entry=true
) at widgets/qmenu.cpp:1384
#56 0x00007fc07d60a341 in QMenuPrivate::activateAction(QAction*,
QAction::ActionEvent, bool) (this=0x1171d30, action=0x104a0b0, action_e
=QAction::Trigger, self=<optimized out>) at widgets/qmenu.cpp:1461
#57 0x00007fc07d4c1b4e in QWidget::event(QEvent*) (this=0x1165cf0,
event=0x7fff14655da0) at kernel/qwidget.cpp:9019
#58 0x00007fc07d47faff in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=this at entry=0xbbfc00, receiver=receiver at entry=0x116
5cf0, e=e at entry=0x7fff14655da0) at kernel/qapplication.cpp:3632
#59 0x00007fc07d4870cb in QApplication::notify(QObject*, QEvent*)
(this=0x7fff14655ad0, receiver=0x1165cf0, e=0x7fff14655da0) at kernel/
qapplication.cpp:3076
#60 0x00007fc07c82913a in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x1165cf0, event=0x7fff14655da0) at kernel/qcor
eapplication.cpp:1063
#61 0x00007fc07d486103 in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&,
 bool, bool) (receiver=0x1165cf0, event=event at entry=0x7fff14655da0,
alienWidget=0x0, nativeWidget=0x1165cf0, buttonDown=<optimized out>,
 lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at
kernel/qapplication.cpp:2614
#62 0x00007fc07d4dbbee in QWidgetWindow::handleMouseEvent(QMouseEvent*)
(this=0x166bb50, event=0x7fff14656060) at kernel/qwidgetwindow.c
pp:580
#63 0x00007fc07d4de505 in QWidgetWindow::event(QEvent*) (this=0x166bb50,
event=0x7fff14656060) at kernel/qwidgetwindow.cpp:300
#64 0x00007fc07d47faff in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=<optimized out>, receiver=0x166bb50, e=0x7fff14656
060) at kernel/qapplication.cpp:3632
#65 0x00007fc07c82913a in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x166bb50, event=0x7fff14656060) at kernel/qcor
eapplication.cpp:1063
#66 0x00007fc07cd2aff3 in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
(e=0x7fbffc00d810) at ke
rnel/qguiapplication.cpp:2282
#67 0x00007fc07cd00c5c in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(flags=flags at entry=...) 
at kernel/qwindowsysteminterface.cpp:1169
#68 0x00007fc076b22c9a in xcbSourceDispatch(GSource*, GSourceFunc, gpointer)
(source=source at entry=0xcb96b0) at qxcbeventdispatcher.cpp:1
05
#69 0x00007fc07a9a7817 in g_main_dispatch (context=0x7fc070005000) at
../glib/gmain.c:3337
#70 g_main_context_dispatch (context=0x7fc070005000) at ../glib/gmain.c:4055
#71 0x00007fc07a9a7b98 in g_main_context_iterate
(context=context at entry=0x7fc070005000, block=block at entry=1,
dispatch=dispatch at entry=1, 
self=<optimized out>) at ../glib/gmain.c:4131
#72 0x00007fc07a9a7c4f in g_main_context_iteration (context=0x7fc070005000,
may_block=may_block at entry=1) at ../glib/gmain.c:4196
#73 0x00007fc07c880d30 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0xcc8a20, flags=...) at kerne
l/qeventdispatcher_glib.cpp:423
#74 0x00007fc07c827b7b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this at entry=0x7fff14656390, flags=..., flags at entr
y=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#75 0x00007fc07c82fdb0 in QCoreApplication::exec() () at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#76 0x0000000000470710 in main(int, char**) (argc=1, argv=0x7fff14656898) at
/tools/umbrello-master/umbrello/main.cpp:240

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the umbrello-devel mailing list