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

[REG SiC 6.4 -> 6.5] qHash(qfloat16(x)) is now ambiguous on GCC13

    XMLWordPrintable

Details

    • 2
    • c86cf385d (dev), 2d4db1bff (6.5), 3a9bbf235 (6.6), 6da6a17de (dev), e8fb761f7 (6.6), eb5be509d (6.5), 0f19cafc3 (dev), 8e14e13c1 (6.6), 3974778dc (6.5), fdfbb6106 (6.5.3), 096a11225 (6.6.0)
    • Foundation Sprint 90

    Description

      This code worked fine on GCC 13 up to Qt 6.4, but breaks in Qt 6.5:

      auto h = qHash(qfloat16(-42.f));
      

      In Qt 6.5, it breaks with the following error:

      tst.cpp:5:19: error: call of overloaded ‘qHash(qfloat16)’ is ambiguous
          5 |   return int(qHash(qfloat16(-42.0f)));
            |              ~~~~~^~~~~~~~~~~~~~~~~~
      

      It goes on to list all the qHash() overloads, incl. the three FP ones: float, double, long double. It seems it no longer prefers the float overload.

      Attachments

        1. tst.cpp
          0.1 kB
          Marc Mutz
        2. tst.pro
          0.0 kB
          Marc Mutz

        Issue Links

          For Gerrit Dashboard: QTBUG-116064
          # Subject Branch Project Status CR V

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: