Details
-
Bug
-
Resolution: Cannot Reproduce
-
P2: Important
-
5.12
Description
After applying https://codereview.qt-project.org/#/c/259569/ to qtquickcontrols2 and running the test, I get the following crash:
SIGILL Illegal instruction
1 QRgba64::fromRgba64 qrgba64.h 74 0xa4b1fdba 2 QRgba64::fromRgba64 qrgba64.h 79 0xa4b1fe78 3 qRgba64 qrgba64.h 194 0xa4c3c5fc 4 get_hex_rgb qcolor.cpp 114 0xa4ecf6cb 5 get_hex_rgb qcolor.cpp 135 0xa4ed979c 6 QColor::setColorFromString<QStringView> qcolor.cpp 960 0xa4ed9e6a 7 QColor::setNamedColor qcolor.cpp 890 0xa4ed0686 8 QColor::QColor qcolor.h 297 0xa3a1598a 9 QQuickColorProvider::rgbaFromString qquickglobal.cpp 78 0xa3a3a982 10 QQmlStringConverters::rgbaFromString qqmlstringconverters.cpp 106 0xa453b0e3 11 QQmlPropertyValidator::validateLiteralBinding qqmlpropertyvalidator.cpp 414 0xa419503b 12 QQmlPropertyValidator::validateObject qqmlpropertyvalidator.cpp 262 0xa4193339 13 QQmlPropertyValidator::validateObject qqmlpropertyvalidator.cpp 206 0xa4192867 14 QQmlPropertyValidator::validateObject qqmlpropertyvalidator.cpp 206 0xa4192867 15 QQmlPropertyValidator::validate qqmlpropertyvalidator.cpp 61 0xa4190fa7 16 QQmlTypeData::done qqmltypeloader.cpp 2381 0xa454b31a 17 QQmlDataBlob::tryDone qqmltypeloader.cpp 675 0xa453e323 18 QQmlTypeLoader::setData qqmltypeloader.cpp 1312 0xa4541444 19 QQmlTypeLoader::setData qqmltypeloader.cpp 1292 0xa45410dd 20 QQmlTypeLoader::loadThread qqmltypeloader.cpp 1162 0xa45404be 21 PlainLoader::loadThread qqmltypeloader.cpp 1007 0xa4564eb1 22 QQmlTypeLoader::doLoad<PlainLoader> qqmltypeloader.cpp 1066 0xa4557aae 23 QQmlTypeLoader::load qqmltypeloader.cpp 1098 0xa4540b1a 24 QQmlTypeLoader::getType qqmltypeloader.cpp 1697 0xa45459c9 25 QQmlTypeData::resolveTypes qqmltypeloader.cpp 2745 0xa455003e 26 QQmlTypeData::allDependenciesDone qqmltypeloader.cpp 2621 0xa454f355 27 QQmlTypeLoader::setData qqmltypeloader.cpp 1305 0xa45413eb 28 QQmlTypeLoader::setData qqmltypeloader.cpp 1292 0xa45410dd 29 QQmlTypeLoader::loadThread qqmltypeloader.cpp 1162 0xa45404be 30 QQmlTypeLoaderThread::loadThread qqmltypeloader.cpp 905 0xa453f751 31 void QQmlThread::callMethodInThread<QQmlDataBlob *, QQmlDataBlob *, QQmlTypeLoaderThread>(void (QQmlTypeLoaderThread:: *)(QQmlDataBlob *), QQmlDataBlob * const&)::I::call(QQmlThread *) qqmlthread_p.h 164 0xa4563ae7 32 QQmlThreadPrivate::threadEvent qqmlthread.cpp 197 0xa46456ca 33 QQmlThreadPrivate::event qqmlthread.cpp 135 0xa46455b9 34 QCoreApplicationPrivate::notify_helper qcoreapplication.cpp 1220 0xa576978c 35 doNotify qcoreapplication.cpp 1150 0xa57690db 36 QCoreApplication::notify qcoreapplication.cpp 1136 0xa5769220 37 QGuiApplication::notify qguiapplication.cpp 1791 0xa4b6f952 38 QCoreApplication::notifyInternal2 qcoreapplication.cpp 1060 0xa5768f79 39 QCoreApplication::sendEvent qcoreapplication.cpp 1450 0xa576a057 40 QCoreApplicationPrivate::sendPostedEvents qcoreapplication.cpp 1799 0xa576adc7 41 QEventDispatcherUNIX::processEvents qeventdispatcher_unix.cpp 466 0xa58493c3 42 QEventLoop::processEvents qeventloop.cpp 138 0xa5761d01 43 QEventLoop::exec qeventloop.cpp 225 0xa5761fd9 44 QThread::exec qthread.cpp 531 0xa5407090 45 QQmlThreadPrivate::run qqmlthread.cpp 148 0xa46457c6 46 QThreadPrivate::start qthread_unix.cpp 361 0xa540a900 47 __pthread_start(void *) 0xb76a7b49 48 __start_thread 0xb76a2faa 49 __bionic_clone 0xb7699b97
The issue can be reproduced with a simple Qt Quick application:
import QtQuick 2.9 import QtQuick.Window 2.2 Window { visible: true width: 640 height: 480 color: "#353637" }
And an even simpler C++ GUI application:
#include <QGuiApplication> #include <QColor> #include <QDebug> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); qDebug() << QColor("#353637"); return 0; }
The disassembly (the debugger is pointing to 0xa4a9ddba):
73 [1] { 0xa4a9dda0 55 push %ebp 0xa4a9dda1 <+ 1> 89 e5 mov %esp,%ebp 0xa4a9dda3 <+ 3> 83 e4 f8 and $0xfffffff8,%esp 0xa4a9dda6 <+ 6> 83 ec 18 sub $0x18,%esp 0xa4a9dda9 <+ 9> 8b 45 08 mov 0x8(%ebp),%eax 0xa4a9ddac <+ 12> 8b 4d 0c mov 0xc(%ebp),%ecx 0xa4a9ddaf <+ 15> 8b 55 10 mov 0x10(%ebp),%edx 0xa4a9ddb2 <+ 18> 89 4c 24 08 mov %ecx,0x8(%esp) 0xa4a9ddb6 <+ 22> 89 54 24 0c mov %edx,0xc(%esp) 74 [1] return QRgba64(c); 0xa4a9ddba <+ 26> c5 fb 10 44 24 08 vmovsd 0x8(%esp),%xmm0 0xa4a9ddc0 <+ 32> c5 fb 11 44 24 10 vmovsd %xmm0,0x10(%esp) 0xa4a9ddc6 <+ 38> 8b 4d 08 mov 0x8(%ebp),%ecx 67 [1] explicit Q_ALWAYS_INLINE Q_DECL_CONSTEXPR QRgba64(quint64 c) : rgba(c) { } 0xa4a9ddc9 <+ 41> c5 fb 10 44 24 10 vmovsd 0x10(%esp),%xmm0 0xa4a9ddcf <+ 47> c5 fb 11 01 vmovsd %xmm0,(%ecx) 74 [1] return QRgba64(c); 0xa4a9ddd3 <+ 51> 89 ec mov %ebp,%esp 0xa4a9ddd5 <+ 53> 5d pop %ebp 0xa4a9ddd6 <+ 54> c2 04 00 ret $0x4
Attachments
Issue Links
- relates to
-
QTBUG-73606 tst_cursor in QtQuickControls2 fails on Android
- Closed