Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-87767

Uninitialized double crashes qt5qml.dll on 32-bit Windows ARM

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • P1: Critical
    • None
    • 5.5.1, 5.6.2, 5.6.3, 5.8
    • None
    • 32-bit Qt, Windows Embedded Compact 2013, ARM v7, Ubuntu 16.04 32-bit, Windows 64 Desktop
    • WinRT
    • 8501993e5275076d9163a7e2f8bab9ba2f187f72

    Description

      An uninitialized double property crashes the QML engine when the property is evaluated in QML on Qt 5.6.

      This also affects applications that use qreal properties when “-qreal float” is omitted when building Qt.

      Here is the relevant code:

      C++:

      class TestBadQReal : public QObject
      {
          Q_OBJECT
          Q_PROPERTY(double badQReal  READ badQReal  WRITE setBadQReal  NOTIFY badQRealChanged)
      public:
          TestBadQReal()
          {
              *reinterpret_cast<quint64 *>(&mBadQReal) = 0x7FFFFFFFFFFFFFFF;
      }

       

      QML:

          property real storage: myType.badQReal
              TestBadQreal { id: myType }

       

      Serial port output:

      PID:08A40341 TID:08030342 Exception 'Data Abort' (0x4): Thread-Id=08030342(pth=b0822538), Proc-Id=08a4033e(pprc=b08a5c18) 'BadQReal.EXE', VM-active=08a4033e(pprc=b08a5c18) 'BadQReal.EXE'

      PID:08A40341 TID:08030342 PC=42bd96c1(qt5qml.dll+0x000696c1) RA=42be54fd(qt5qml.dll+0x000754fd) SP=0013f3b8, BVA=00000000

       

      I attached a minimal project.

      Can someone check if this occurs on Qt 5.12 on either 32-bit desktop or ARM?

      Attachments

        Issue Links

          Activity

            People

              qt.team.quick.subscriptions Qt Quick and Widgets Team
              stan.m Stanley Morris
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: