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

    • 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

      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.

        1. tst.cpp
          0.1 kB
          Marc Mutz
        2. tst.pro
          0.0 kB
          Marc Mutz
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            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

              Created:
              Updated:
              Resolved: