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

Direct2D QPA plugin does not compile with Clang-cl due to overzealous constexpr

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P4: Low
    • 5.6.1
    • 5.6.0 Beta
    • QPA: Windows
    • None
    • WIndows 10. LLMV 3.9 64bit for Windows + MSVC2015

    Description

      With LLMV 3.9 64bit for Windows + MSVC2015:

      In file included from .\qwindowsdirect2dpaintengine.cpp:44:
      ./qwindowsdirect2dhelpers.h(53,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_U to_d2d_rect_u(const QRect &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(55,12) :  note: non-constexpr function 'RectU' cannot be used in a constant expression
          return D2D1::RectU(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(173,5) :  note: declared here
          RectU(
          ^
      In file included from .\qwindowsdirect2dpaintengine.cpp:44:
      ./qwindowsdirect2dhelpers.h(58,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_F to_d2d_rect_f(const QRectF &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(60,12) :  note: non-constexpr function 'RectF' cannot be used in a constant expression
          return D2D1::RectF(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(160,5) :  note: declared here
          RectF(
          ^
      In file included from .\qwindowsdirect2dpaintengine.cpp:44:
      ./qwindowsdirect2dhelpers.h(63,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSizeF &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(65,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2dpaintengine.cpp:44:
      ./qwindowsdirect2dhelpers.h(68,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSize &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(70,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2dpaintengine.cpp:44:
      ./qwindowsdirect2dhelpers.h(73,39) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_POINT_2F to_d2d_point_2f(const QPointF &qpoint)
                                            ^
      ./qwindowsdirect2dhelpers.h(75,12) :  note: non-constexpr function 'Point2F' cannot be used in a constant expression
          return D2D1::Point2F(qpoint.x(), qpoint.y());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(86,5) :  note: declared here
          Point2F(
          ^
      In file included from .\qwindowsdirect2dpaintengine.cpp:44:
      ./qwindowsdirect2dhelpers.h(78,38) :  error: constexpr function's return type 'D2D1::ColorF' is not a literal type
      Q_DECL_CONSTEXPR inline D2D1::ColorF to_d2d_color_f(const QColor &c)
                                           ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(517,11) :  note: 'ColorF' is not literal because it is not an aggregate and has no constexpr constructors other than copy or move constructors
          class ColorF : public D2D1_COLOR_F
                ^
      In file included from .\qwindowsdirect2dpaintengine.cpp:44:
      ./qwindowsdirect2dhelpers.h(83,43) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_MATRIX_3X2_F to_d2d_matrix_3x2_f(const QTransform &transform)
                                                ^
      ./qwindowsdirect2dhelpers.h(85,12) :  note: non-literal type 'D2D1::Matrix3x2F' cannot be used in a constant expression
          return D2D1::Matrix3x2F(transform.m11(), transform.m12(),
                 ^
      7 errors generated.
      In file included from .\qwindowsdirect2dpaintdevice.cpp:43:
      ./qwindowsdirect2dhelpers.h(53,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_U to_d2d_rect_u(const QRect &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(55,12) :  note: non-constexpr function 'RectU' cannot be used in a constant expression
          return D2D1::RectU(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(173,5) :  note: declared here
          RectU(
          ^
      In file included from .\qwindowsdirect2dpaintdevice.cpp:43:
      ./qwindowsdirect2dhelpers.h(58,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_F to_d2d_rect_f(const QRectF &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(60,12) :  note: non-constexpr function 'RectF' cannot be used in a constant expression
          return D2D1::RectF(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(160,5) :  note: declared here
          RectF(
          ^
      In file included from .\qwindowsdirect2dpaintdevice.cpp:43:
      ./qwindowsdirect2dhelpers.h(63,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSizeF &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(65,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2dpaintdevice.cpp:43:
      ./qwindowsdirect2dhelpers.h(68,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSize &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(70,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2dpaintdevice.cpp:43:
      ./qwindowsdirect2dhelpers.h(73,39) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_POINT_2F to_d2d_point_2f(const QPointF &qpoint)
                                            ^
      ./qwindowsdirect2dhelpers.h(75,12) :  note: non-constexpr function 'Point2F' cannot be used in a constant expression
          return D2D1::Point2F(qpoint.x(), qpoint.y());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(86,5) :  note: declared here
          Point2F(
          ^
      In file included from .\qwindowsdirect2dpaintdevice.cpp:43:
      ./qwindowsdirect2dhelpers.h(78,38) :  error: constexpr function's return type 'D2D1::ColorF' is not a literal type
      Q_DECL_CONSTEXPR inline D2D1::ColorF to_d2d_color_f(const QColor &c)
                                           ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(517,11) :  note: 'ColorF' is not literal because it is not an aggregate and has no constexpr constructors other than copy or move constructors
          class ColorF : public D2D1_COLOR_F
                ^
      In file included from .\qwindowsdirect2dpaintdevice.cpp:43:
      ./qwindowsdirect2dhelpers.h(83,43) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_MATRIX_3X2_F to_d2d_matrix_3x2_f(const QTransform &transform)
                                                ^
      ./qwindowsdirect2dhelpers.h(85,12) :  note: non-literal type 'D2D1::Matrix3x2F' cannot be used in a constant expression
          return D2D1::Matrix3x2F(transform.m11(), transform.m12(),
                 ^
      7 errors generated.
      In file included from .\qwindowsdirect2dplatformpixmap.cpp:44:
      ./qwindowsdirect2dhelpers.h(53,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_U to_d2d_rect_u(const QRect &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(55,12) :  note: non-constexpr function 'RectU' cannot be used in a constant expression
          return D2D1::RectU(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(173,5) :  note: declared here
          RectU(
          ^
      In file included from .\qwindowsdirect2dplatformpixmap.cpp:44:
      ./qwindowsdirect2dhelpers.h(58,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_F to_d2d_rect_f(const QRectF &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(60,12) :  note: non-constexpr function 'RectF' cannot be used in a constant expression
          return D2D1::RectF(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(160,5) :  note: declared here
          RectF(
          ^
      In file included from .\qwindowsdirect2dplatformpixmap.cpp:44:
      ./qwindowsdirect2dhelpers.h(63,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSizeF &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(65,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2dplatformpixmap.cpp:44:
      ./qwindowsdirect2dhelpers.h(68,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSize &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(70,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2dplatformpixmap.cpp:44:
      ./qwindowsdirect2dhelpers.h(73,39) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_POINT_2F to_d2d_point_2f(const QPointF &qpoint)
                                            ^
      ./qwindowsdirect2dhelpers.h(75,12) :  note: non-constexpr function 'Point2F' cannot be used in a constant expression
          return D2D1::Point2F(qpoint.x(), qpoint.y());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(86,5) :  note: declared here
          Point2F(
          ^
      In file included from .\qwindowsdirect2dplatformpixmap.cpp:44:
      ./qwindowsdirect2dhelpers.h(78,38) :  error: constexpr function's return type 'D2D1::ColorF' is not a literal type
      Q_DECL_CONSTEXPR inline D2D1::ColorF to_d2d_color_f(const QColor &c)
                                           ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(517,11) :  note: 'ColorF' is not literal because it is not an aggregate and has no constexpr constructors other than copy or move constructors
          class ColorF : public D2D1_COLOR_F
                ^
      In file included from .\qwindowsdirect2dplatformpixmap.cpp:44:
      ./qwindowsdirect2dhelpers.h(83,43) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_MATRIX_3X2_F to_d2d_matrix_3x2_f(const QTransform &transform)
                                                ^
      ./qwindowsdirect2dhelpers.h(85,12) :  note: non-literal type 'D2D1::Matrix3x2F' cannot be used in a constant expression
          return D2D1::Matrix3x2F(transform.m11(), transform.m12(),
                 ^
      7 errors generated.
      In file included from .\qwindowsdirect2dcontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(53,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_U to_d2d_rect_u(const QRect &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(55,12) :  note: non-constexpr function 'RectU' cannot be used in a constant expression
          return D2D1::RectU(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(173,5) :  note: declared here
          RectU(
          ^
      In file included from .\qwindowsdirect2dcontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(58,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_F to_d2d_rect_f(const QRectF &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(60,12) :  note: non-constexpr function 'RectF' cannot be used in a constant expression
          return D2D1::RectF(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(160,5) :  note: declared here
          RectF(
          ^
      In file included from .\qwindowsdirect2dcontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(63,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSizeF &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(65,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2dcontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(68,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSize &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(70,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2dcontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(73,39) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_POINT_2F to_d2d_point_2f(const QPointF &qpoint)
                                            ^
      ./qwindowsdirect2dhelpers.h(75,12) :  note: non-constexpr function 'Point2F' cannot be used in a constant expression
          return D2D1::Point2F(qpoint.x(), qpoint.y());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(86,5) :  note: declared here
          Point2F(
          ^
      In file included from .\qwindowsdirect2dcontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(78,38) :  error: constexpr function's return type 'D2D1::ColorF' is not a literal type
      Q_DECL_CONSTEXPR inline D2D1::ColorF to_d2d_color_f(const QColor &c)
                                           ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(517,11) :  note: 'ColorF' is not literal because it is not an aggregate and has no constexpr constructors other than copy or move constructors
          class ColorF : public D2D1_COLOR_F
                ^
      In file included from .\qwindowsdirect2dcontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(83,43) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_MATRIX_3X2_F to_d2d_matrix_3x2_f(const QTransform &transform)
                                                ^
      ./qwindowsdirect2dhelpers.h(85,12) :  note: non-literal type 'D2D1::Matrix3x2F' cannot be used in a constant expression
          return D2D1::Matrix3x2F(transform.m11(), transform.m12(),
                 ^
      7 errors generated.
      In file included from .\qwindowsdirect2dbitmap.cpp:42:
      ./qwindowsdirect2dhelpers.h(53,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_U to_d2d_rect_u(const QRect &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(55,12) :  note: non-constexpr function 'RectU' cannot be used in a constant expression
          return D2D1::RectU(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(173,5) :  note: declared here
          RectU(
          ^
      In file included from .\qwindowsdirect2dbitmap.cpp:42:
      ./qwindowsdirect2dhelpers.h(58,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_F to_d2d_rect_f(const QRectF &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(60,12) :  note: non-constexpr function 'RectF' cannot be used in a constant expression
          return D2D1::RectF(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(160,5) :  note: declared here
          RectF(
          ^
      In file included from .\qwindowsdirect2dbitmap.cpp:42:
      ./qwindowsdirect2dhelpers.h(63,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSizeF &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(65,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2dbitmap.cpp:42:
      ./qwindowsdirect2dhelpers.h(68,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSize &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(70,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2dbitmap.cpp:42:
      ./qwindowsdirect2dhelpers.h(73,39) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_POINT_2F to_d2d_point_2f(const QPointF &qpoint)
                                            ^
      ./qwindowsdirect2dhelpers.h(75,12) :  note: non-constexpr function 'Point2F' cannot be used in a constant expression
          return D2D1::Point2F(qpoint.x(), qpoint.y());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(86,5) :  note: declared here
          Point2F(
          ^
      In file included from .\qwindowsdirect2dbitmap.cpp:42:
      ./qwindowsdirect2dhelpers.h(78,38) :  error: constexpr function's return type 'D2D1::ColorF' is not a literal type
      Q_DECL_CONSTEXPR inline D2D1::ColorF to_d2d_color_f(const QColor &c)
                                           ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(517,11) :  note: 'ColorF' is not literal because it is not an aggregate and has no constexpr constructors other than copy or move constructors
          class ColorF : public D2D1_COLOR_F
                ^
      In file included from .\qwindowsdirect2dbitmap.cpp:42:
      ./qwindowsdirect2dhelpers.h(83,43) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_MATRIX_3X2_F to_d2d_matrix_3x2_f(const QTransform &transform)
                                                ^
      ./qwindowsdirect2dhelpers.h(85,12) :  note: non-literal type 'D2D1::Matrix3x2F' cannot be used in a constant expression
          return D2D1::Matrix3x2F(transform.m11(), transform.m12(),
                 ^
      .\qwindowsdirect2dbitmap.cpp(58,11) :  warning: field 'bitmap' will be initialized after field 'deviceContext' [-Wreorder]
              : bitmap(bm)
                ^
      1 warning and 7 errors generated.
      In file included from .\qwindowsdirect2ddevicecontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(53,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_U to_d2d_rect_u(const QRect &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(55,12) :  note: non-constexpr function 'RectU' cannot be used in a constant expression
          return D2D1::RectU(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(173,5) :  note: declared here
          RectU(
          ^
      In file included from .\qwindowsdirect2ddevicecontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(58,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_F to_d2d_rect_f(const QRectF &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(60,12) :  note: non-constexpr function 'RectF' cannot be used in a constant expression
          return D2D1::RectF(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(160,5) :  note: declared here
          RectF(
          ^
      In file included from .\qwindowsdirect2ddevicecontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(63,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSizeF &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(65,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2ddevicecontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(68,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSize &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(70,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2ddevicecontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(73,39) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_POINT_2F to_d2d_point_2f(const QPointF &qpoint)
                                            ^
      ./qwindowsdirect2dhelpers.h(75,12) :  note: non-constexpr function 'Point2F' cannot be used in a constant expression
          return D2D1::Point2F(qpoint.x(), qpoint.y());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(86,5) :  note: declared here
          Point2F(
          ^
      In file included from .\qwindowsdirect2ddevicecontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(78,38) :  error: constexpr function's return type 'D2D1::ColorF' is not a literal type
      Q_DECL_CONSTEXPR inline D2D1::ColorF to_d2d_color_f(const QColor &c)
                                           ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(517,11) :  note: 'ColorF' is not literal because it is not an aggregate and has no constexpr constructors other than copy or move constructors
          class ColorF : public D2D1_COLOR_F
                ^
      In file included from .\qwindowsdirect2ddevicecontext.cpp:41:
      ./qwindowsdirect2dhelpers.h(83,43) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_MATRIX_3X2_F to_d2d_matrix_3x2_f(const QTransform &transform)
                                                ^
      ./qwindowsdirect2dhelpers.h(85,12) :  note: non-literal type 'D2D1::Matrix3x2F' cannot be used in a constant expression
          return D2D1::Matrix3x2F(transform.m11(), transform.m12(),
                 ^
      7 errors generated.
      In file included from .\qwindowsdirect2dwindow.cpp:44:
      ./qwindowsdirect2dhelpers.h(53,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_U to_d2d_rect_u(const QRect &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(55,12) :  note: non-constexpr function 'RectU' cannot be used in a constant expression
          return D2D1::RectU(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(173,5) :  note: declared here
          RectU(
          ^
      In file included from .\qwindowsdirect2dwindow.cpp:44:
      ./qwindowsdirect2dhelpers.h(58,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_RECT_F to_d2d_rect_f(const QRectF &qrect)
                                          ^
      ./qwindowsdirect2dhelpers.h(60,12) :  note: non-constexpr function 'RectF' cannot be used in a constant expression
          return D2D1::RectF(qrect.x(), qrect.y(), qrect.x() + qrect.width(), qrect.y() + qrect.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(160,5) :  note: declared here
          RectF(
          ^
      In file included from .\qwindowsdirect2dwindow.cpp:44:
      ./qwindowsdirect2dhelpers.h(63,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSizeF &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(65,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2dwindow.cpp:44:
      ./qwindowsdirect2dhelpers.h(68,37) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_SIZE_U to_d2d_size_u(const QSize &qsize)
                                          ^
      ./qwindowsdirect2dhelpers.h(70,12) :  note: non-constexpr function 'SizeU' cannot be used in a constant expression
          return D2D1::SizeU(qsize.width(), qsize.height());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(133,5) :  note: declared here
          SizeU(
          ^
      In file included from .\qwindowsdirect2dwindow.cpp:44:
      ./qwindowsdirect2dhelpers.h(73,39) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_POINT_2F to_d2d_point_2f(const QPointF &qpoint)
                                            ^
      ./qwindowsdirect2dhelpers.h(75,12) :  note: non-constexpr function 'Point2F' cannot be used in a constant expression
          return D2D1::Point2F(qpoint.x(), qpoint.y());
                 ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(86,5) :  note: declared here
          Point2F(
          ^
      In file included from .\qwindowsdirect2dwindow.cpp:44:
      ./qwindowsdirect2dhelpers.h(78,38) :  error: constexpr function's return type 'D2D1::ColorF' is not a literal type
      Q_DECL_CONSTEXPR inline D2D1::ColorF to_d2d_color_f(const QColor &c)
                                           ^
      C:\Program Files (x86)\Windows Kits\10\include\10.0.10586.0\um\d2d1helper.h(517,11) :  note: 'ColorF' is not literal because it is not an aggregate and has no constexpr constructors other than copy or move constructors
          class ColorF : public D2D1_COLOR_F
                ^
      In file included from .\qwindowsdirect2dwindow.cpp:44:
      ./qwindowsdirect2dhelpers.h(83,43) :  error: constexpr function never produces a constant expression [-Winvalid-constexpr]
      Q_DECL_CONSTEXPR inline D2D1_MATRIX_3X2_F to_d2d_matrix_3x2_f(const QTransform &transform)
                                                ^
      ./qwindowsdirect2dhelpers.h(85,12) :  note: non-literal type 'D2D1::Matrix3x2F' cannot be used in a constant expression
          return D2D1::Matrix3x2F(transform.m11(), transform.m12(),
                 ^
      7 errors generated.
      NMAKE : fatal error U1077: 'D:\opt\LLVM64_390\bin\clang-cl.EXE' : return code '0x1'
      

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              kleint Friedemann Kleint
              kleint Friedemann Kleint
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes