Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.4.0, 5.5.0
-
None
-
This is on qtdeclarative commit 8b3643dd8b492f7754846e7371686db61bcfef69.
-
0bba8d7411d0b1f1b547f9ac960e7d84769c7154
Description
Evaluating this ends up with an assert from inside v4:
#include <QtCore/QCoreApplication> #include <QtQml/QQmlEngine> #include <QtQml/QQmlExpression> int main(int argc, char **argv) { QCoreApplication app(argc, argv); QQmlEngine engine; QQmlExpression expr(engine.rootContext(), 0, QLatin1String("true()")); QVariant res = expr.evaluate(); Q_ASSERT(res.isValid()); return true; }
Here's the backtrace:
#0 0x00007ffff649c4e5 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007ffff649d968 in __GI_abort () at abort.c:90 #2 0x00007ffff70ef1b3 in qt_message_fatal (context=..., message=...) at /home/jkt/work/prog/qt5/qtbase/src/corelib/global/qlogging.cpp:1411 #3 0x00007ffff70eb466 in QMessageLogger::fatal (this=0x7fffffffcce0, msg=0x7ffff74ae810 "ASSERT: \"%s\" in file %s, line %d") at /home/jkt/work/prog/qt5/qtbase/src/corelib/global/qlogging.cpp:636 #4 0x00007ffff70e35d4 in qt_assert (assertion=0x7ffff7bee02f "!\"TODO\"", file=0x7ffff7bedf58 "/home/jkt/work/prog/qt5/qtdeclarative/src/qml/compiler/qv4isel_p.cpp", line=223) at /home/jkt/work/prog/qt5/qtbase/src/corelib/global/qglobal.cpp:2868 #5 0x00007ffff7804a04 in QV4::IR::IRDecoder::visitMove (this=0x555555654970, s=0x555555650290) at /home/jkt/work/prog/qt5/qtdeclarative/src/qml/compiler/qv4isel_p.cpp:223 #6 0x00007ffff780dd8d in QV4::IR::Move::accept (this=0x555555650290, v=0x555555654970) at /home/jkt/work/prog/qt5/qtdeclarative/src/qml/compiler/qv4jsir_p.h:680 #7 0x00007ffff78d4b15 in QV4::JIT::RegAllocInfo::collect (this=0x555555654970, function=0x55555564a090, lifeTimeIntervals=...) at /home/jkt/work/prog/qt5/qtdeclarative/src/qml/jit/qv4regalloc.cpp:171 #8 0x00007ffff78ced13 in QV4::JIT::RegisterAllocator::run (this=0x7fffffffd0b0, function=0x55555564a090, opt=...) at /home/jkt/work/prog/qt5/qtdeclarative/src/qml/jit/qv4regalloc.cpp:1260 #9 0x00007ffff78e1e9e in QV4::JIT::InstructionSelection::run (this=0x5555556520b0, functionIndex=0) at /home/jkt/work/prog/qt5/qtdeclarative/src/qml/jit/qv4isel_masm.cpp:221 #10 0x00007ffff78035a6 in QV4::EvalInstructionSelection::compile (this=0x5555556520c0, generateUnitData=true) at /home/jkt/work/prog/qt5/qtdeclarative/src/qml/compiler/qv4isel_p.cpp:78 #11 0x00007ffff79d89ac in QV4::Script::parse (this=0x7fffffffd720) at /home/jkt/work/prog/qt5/qtdeclarative/src/qml/jsruntime/qv4script.cpp:262 #12 0x00007ffff7b17077 in QQmlJavaScriptExpression::qmlBinding (ctxt=0x555555649fd0, qmlScope=0x0, code=..., filename=..., line=0, qmlscope=0x55555564a248) at /home/jkt/work/prog/qt5/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:331 #13 0x00007ffff7a6e789 in QQmlExpressionPrivate::v4value (this=0x55555564a190, isUndefined=0x0) at /home/jkt/work/prog/qt5/qtdeclarative/src/qml/qml/qqmlexpression.cpp:251 #14 0x00007ffff7a6e9e2 in QQmlExpressionPrivate::value (this=0x55555564a190, isUndefined=0x0) at /home/jkt/work/prog/qt5/qtdeclarative/src/qml/qml/qqmlexpression.cpp:277 #15 0x00007ffff7a6eb00 in QQmlExpression::evaluate (this=0x7fffffffd950, valueIsUndefined=0x0) at /home/jkt/work/prog/qt5/qtdeclarative/src/qml/qml/qqmlexpression.cpp:298 #16 0x0000555555554f25 in main (argc=1, argv=<optimized out>) at bug-qqmlexpression-bool-called.cpp:10
Attachments
For Gerrit Dashboard: QTBUG-43819 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
103519,3 | Fix failing assertion in debug builds for JS that calls constants | 5.4 | qt/qtdeclarative | Status: MERGED | +2 | 0 |