This crashes the compiler because the register access on x in the "if" block is not correctly propagated. The type propagator still handles it via a second pass, but the basic blocks pass does not understand that x is indirectly propagated "backwards" through the "while". Turning off the life time analysis in QQmlJSBasicBlocks::adjustTypes() fixes the problem, but it's yet unclear at what cost.
|For Gerrit Dashboard: QTBUG-104665|
|419656,4||QmlCompiler: Fix register propagation in basic blocks pass||dev||qt/qtdeclarative||Status: MERGED||+2||0|
|420364,5||QmlCompiler: Fix register propagation in basic blocks pass||6.4||qt/qtdeclarative||Status: MERGED||+2||0|