From 815ca486544218e9d88fca576137dae27421642a Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Thu, 9 Jan 2025 14:02:38 +0100 Subject: [PATCH] Remove constexpr from a function that doesn't need it, and asserts The call to q_assert() isn't constexpr, so can't happen in a constexpr function. Most compilers shrug this off as they can see the code actually is unreachable, but apparently debug builds on QNX can't work that out. Since nothing actually needs the function to be constexpr, remove that qualifier. In the process, move the offset-case, which is also unreachable, to the end of the switch, closer to the unreachable end of the function (since I failed to spot that there were two unreachable parts at first). Fixes: QTBUG-132698 Change-Id: Ibdde7abd91d284e1c1af53e2b5e142fc234400a8 Reviewed-by: Thiago Macieira Reviewed-by: Marc Mutz (cherry picked from commit 2578d72a7cb9b784a00efb04df6a31496d92dcdc) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit cf9e8434eb1d6cb527f8f216c4c37c14cf713690) --- src/corelib/time/qtimezonelocale.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/corelib/time/qtimezonelocale.cpp b/src/corelib/time/qtimezonelocale.cpp index cf3a84b3173..c986b8ac280 100644 --- a/src/corelib/time/qtimezonelocale.cpp +++ b/src/corelib/time/qtimezonelocale.cpp @@ -17,19 +17,19 @@ QT_BEGIN_NAMESPACE namespace { // Convert TimeType and NameType into ICU UCalendarDisplayNameType -constexpr UCalendarDisplayNameType ucalDisplayNameType(QTimeZone::TimeType timeType, - QTimeZone::NameType nameType) +UCalendarDisplayNameType ucalDisplayNameType(QTimeZone::TimeType timeType, + QTimeZone::NameType nameType) { // TODO ICU C UCalendarDisplayNameType does not support full set of C++ TimeZone::EDisplayType // For now, treat Generic as Standard switch (nameType) { - case QTimeZone::OffsetName: - Q_UNREACHABLE(); // Callers of ucalTimeZoneDisplayName() should take care of OffsetName. case QTimeZone::ShortName: return timeType == QTimeZone::DaylightTime ? UCAL_SHORT_DST : UCAL_SHORT_STANDARD; case QTimeZone::DefaultName: case QTimeZone::LongName: return timeType == QTimeZone::DaylightTime ? UCAL_DST : UCAL_STANDARD; + case QTimeZone::OffsetName: + Q_UNREACHABLE(); // Callers of ucalTimeZoneDisplayName() should take care of OffsetName. } Q_UNREACHABLE_RETURN(UCAL_STANDARD); }