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

Basic <type_traits> not working for q*int128 in QtCore TUs

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • 6.8.0 RC, 6.9.0 FF
    • 6.6.2, dev
    • Core: Other
    • None
    • Linux/X11
    • 13
    • 0c4d4cfa0 (dev), ba823e3a5 (6.8), 113710a2b (6.7), 9bb2ab597 (dev), 30e04340d (dev), da580a12b (dev), e7c542489 (dev), 4cb06919a (6.8), caf57f0ca (6.8), 7805b3c32 (6.8), feb43b779 (6.8), e8f468c88 (dev), 75588099a (6.7), c5c488688 (tqtc/lts-6.5)
    • Foundation Sprint 113, Foundation Sprint 114

    Description

      On GCC 13, static_assert( std::is_signed_v< qint128>); fails in qdebug.cpp and succeeds in tst_qglobal.cpp.

      Go figure.

      From compile_commands.json (attached):

      • bootstrap: -std=gnu++20
      • QtCore: -std=c++20
      • tst_qglobal.cpp: -std=gnu++20

      I think that we should not define QT_SUPPORTS_INT128 when the basic compiler intrinsics don't work on the type. ivan.solovev also ran into the issue that is_integral isn't defined.

      If we can get them with some _extension_ magic, fine. But also for user-code, please. Otherwise, require gnu++ to get int128 support.

      Attachments

        Issue Links

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

          Activity

            People

              mmutz Marc Mutz
              mmutz Marc Mutz
              Vladimir Minenko Vladimir Minenko
              Alex Blasche Alex Blasche
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: