Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.12.0 Beta 2
-
OpenSUSE Tumbleweed (x64)
g++ (SUSE Linux) 8.2.1 20181108 [gcc-8-branch revision 265914]
Qt configured with -platform linux-g++-32
-
-
3795904e3831722e222fa32a1e52aeb6b3e6ba87
Description
JIT code generated for string to number conversion leads segfaults on 32-bit platforms (at least x86-32). For example, evaluating "1" & 1 results in
Program received signal SIGSEGV, Segmentation fault. 0xf4ddf782 in qt_to_latin1_internal<true> (dst=<optimized out>, src=src@entry=0xf0d073d0, length=length@entry=1) at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/include/emmintrin.h:649 649 return _mm_set_epi16 (__A, __A, __A, __A, __A, __A, __A, __A); (gdb) bt #0 0xf4ddf782 in qt_to_latin1_internal<true> (dst=<optimized out>, src=src@entry=0xf0d073d0, length=length@entry=1) at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/include/emmintrin.h:649 #1 0xf4ddfed1 in qt_to_latin1 (dst=<optimized out>, src=src@entry=0xf0d073d0, length=length@entry=1) at /mnt/src/qtbase/src/corelib/tools/qstring.cpp:771 #2 0xf4de40ea in qt_convert_to_latin1 (string=...) at ../../include/QtCore/../../../../src/qtbase/src/corelib/tools/qarraydata.h:61 #3 0xf4e16eaa in QStringRef::toLatin1 (this=<optimized out>) at ../../include/QtCore/../../../../src/qtbase/src/corelib/tools/qstringview.h:166 #4 0xf6f67759 in QV4::RuntimeHelpers::stringToNumber (string=...) at /mnt/src/qtdeclarative/src/qml/jsruntime/qv4runtime.cpp:404 #5 0xf6f8e93d in QV4::Value::toNumberImpl (val=...) at /mnt/obj/qtbase/include/QtCore/../../../../src/qtbase/src/corelib/tools/qstring.h:829 #6 0xf6fb16e6 in QV4::Value::toNumberImpl (this=0xffffb868) at /mnt/src/qtdeclarative/src/qml/jsruntime/qv4value_p.h:737 #7 QV4::Value::toInt32 (this=0xffffb868) at /mnt/src/qtdeclarative/src/qml/jsruntime/qv4value_p.h:737 #8 QV4::JIT::toInt32Helper (v=<optimized out>) at /mnt/src/qtdeclarative/src/qml/jit/qv4baselineassembler.cpp:77 #9 0xf166e03c in ?? () #10 0xf6c21b9c in QV4::Moth::VME::exec (frame=<optimized out>, engine=<optimized out>) at /mnt/src/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:433 #11 0xf688fb80 in QV4::Function::call (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>, context=<optimized out>) at /mnt/src/qtdeclarative/src/qml/jsruntime/qv4function.cpp:68 #12 0xf6ae27d9 in QV4::Script::run (this=<optimized out>, thisObject=<optimized out>) at /mnt/src/qtdeclarative/src/qml/jsruntime/qv4script.cpp:160 #13 0x5655ac68 in main (argc=<optimized out>, argv=<optimized out>) at /mnt/obj/qtbase/include/QtCore/../../../../src/qtbase/src/corelib/tools/qscopedpointer.h:116
Attachments
For Gerrit Dashboard: QTBUG-71325 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
249368,4 | V4: Fix stack alignment in JITted code | 5.12 | qt/qtdeclarative | Status: MERGED | -2 | 0 |
249842,2 | V4: Fix stack alignment in JITted code | 5.12.1 | qt/qtdeclarative | Status: MERGED | +2 | 0 |