Fixup (u)int128 to latin support

MSVC compilers that could use both branches ended up
using one branch for some things and another branch for
other things, which didn't mix and caused build failures.

And in the header the #include was inside the Qt namespace
and caused internal build errors during parse.

Amends 9d693dbfb14664eed285dfe35ebabba187dd1602

Change-Id: I1a77abe1fefd21ea3256f5b2d5a55998257762e5
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
This commit is contained in:
Mårten Nordheim 2024-05-26 14:08:30 +02:00
parent f3f383f097
commit 9f2dc6d17f
2 changed files with 7 additions and 4 deletions

View File

@ -810,10 +810,10 @@ QByteArray qdtoAscii(double d, QLocaleData::DoubleForm form, int precision, bool
#if defined(QT_SUPPORTS_INT128) || (defined(Q_CC_MSVC) && (_MSC_VER >= 1930))
static inline quint64 toUInt64(qinternaluint128 v)
{
#ifdef Q_CC_MSVC
return quint64(v._Word[0]);
#else
#ifdef QT_SUPPORTS_INT128
return quint64(v);
#elif defined(Q_CC_MSVC)
return quint64(v._Word[0]);
#endif
}
QString quint128toBasicLatin(qinternaluint128 number, int base)

View File

@ -18,13 +18,16 @@
#include "qlocale_p.h"
#include "qstring.h"
#if !defined(QT_SUPPORTS_INT128) && defined(Q_CC_MSVC) && (_MSC_VER >= 1930)
#include <__msvc_int128.hpp>
#endif
QT_BEGIN_NAMESPACE
#if defined(QT_SUPPORTS_INT128)
using qinternalint128 = qint128;
using qinternaluint128 = quint128;
#elif defined(Q_CC_MSVC) && (_MSC_VER >= 1930)
#include <__msvc_int128.hpp>
using qinternalint128 = std::_Signed128;
using qinternaluint128 = std::_Unsigned128;
#endif