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

"Oliver Kellogg" <[email protected]>
Newsgroups gmane.linux.umbrello.devel
Message-ID <[email protected]/>
https://bugs.kde.org/show_bug.cgi?id=338649

--- Comment #20 from Oliver Kellogg <[email protected]> ---
(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@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@entry=0x7fff14653b78, msg=msg@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@entry=0x7fff14654a40) at
 kernel/qobject.cpp:3898
#25 0x00007fc07c858f60 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (sender=sender@entry=0x1734400, m=m@entry=0x7
fc07d99f4e0 <QAbstractButton::staticMetaObject>,
local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fff14654a40)
at kerne
l/qobject.cpp:3946
#26 0x00007fc07d5736a2 in QAbstractButton::clicked(bool)
(this=this@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@entry=0xbbfc00, receiver=receiver@entry=0x173
4400, e=e@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@entry=0x1734400,
event=event@entry=0x7fff14654fc0, alienWidget=alienWidget@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@entry=...) 
at kernel/qwindowsysteminterface.cpp:1169
#41 0x00007fc076b22c9a in xcbSourceDispatch(GSource*, GSourceFunc, gpointer)
(source=source@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@entry=0x7fc070005000, block=block@entry=1,
dispatch=dispatch@entry=1, 
self=<optimized out>) at ../glib/gmain.c:4131
#45 0x00007fc07a9a7c4f in g_main_context_iteration (context=0x7fc070005000,
may_block=may_block@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@entry=0x7fff146555b0, flags=..., flags@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@entry=0x7fff146557a0) at
 kernel/qobject.cpp:3898
#52 0x00007fc07c858f60 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (sender=sender@entry=0x104a0b0, m=m@entry=0x7
fc07d99a0a0 <QAction::staticMetaObject>,
local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff146557a0)
at kernel/qobjec
t.cpp:3946
#53 0x00007fc07d4791d2 in QAction::triggered(bool) (this=this@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@entry=0x1171d30, causedStack=..., action=action@entry=0x104a0b0,
action_e=action_e@entry=QAction::Trigger, self=self@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@entry=0xbbfc00, receiver=receiver@entry=0x116
5cf0, e=e@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@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@entry=...) 
at kernel/qwindowsysteminterface.cpp:1169
#68 0x00007fc076b22c9a in xcbSourceDispatch(GSource*, GSourceFunc, gpointer)
(source=source@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@entry=0x7fc070005000, block=block@entry=1,
dispatch=dispatch@entry=1, 
self=<optimized out>) at ../glib/gmain.c:4131
#72 0x00007fc07a9a7c4f in g_main_context_iteration (context=0x7fc070005000,
may_block=may_block@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@entry=0x7fff14656390, flags=..., flags@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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.