Go to file
Thiago Macieira 4fd4082c3a QStringView: add missing constexpr so we can use is_constant_evaluated
GCC 12 -std=c++20 says:

 qstringview.h:155:39: error: ‘std::is_constant_evaluated’ always evaluates to false in a non-‘constexpr’ function [-Werror=tautological-compare]

With this, it's possible to declare:

  constexpr QStringView sv = u"Hello, World!";
  QStringView f() { return sv; }

And GCC will generate:

        movl    $13, %eax
        leaq    .LC0(%rip), %rdx
        ret

Writing simply
  QStringView f() { return u"Hello, World!"; }

Causes GCC to emit a comparison loop (the std::char_traits::length
function), but at least there's no function call in either C++17 or
20. Clang 13 is able to reduce the loop to a constant and produces the
same code as the constexpr variable in either mode.

Pick-to: 5.15 6.2 6.3
Change-Id: I74249c52dc02478ba93cfffd16d282fa35a5b883
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-02-12 07:59:32 +00:00
.github/workflows Repair github action workflow 2021-11-10 18:57:33 +01:00
bin Provide a qtpaths wrapper script when cross-building Qt 2021-11-08 13:41:03 +01:00
cmake CMake: Add BUILTIN_TESTDATA option to qt_internal_add_test 2022-02-11 21:54:44 +01:00
coin Coin: use CMAKE_STAGING_PREFIX for cross-compilations 2022-01-20 10:07:04 +02:00
config.tests qsimd_p.h: add a hack to allow AVX to work with MinGW 2022-01-20 20:48:23 -03:00
dist Add Qt 6.0.0 changes file 2020-11-16 10:02:08 +02:00
doc qglobal: add a way to selectively export in Qt 6 XOR Qt 7 2022-02-09 10:49:37 -08:00
examples qtextstream.h: streamline includes 2022-02-10 04:34:13 +01:00
lib Purge all fonts 2015-08-18 19:59:14 +00:00
libexec Fix various configure time warnings about missing QT_BEGIN_NAMESPACE 2021-11-01 17:17:29 +02:00
mkspecs Update MSVC qmake mkspecs to make -std:c++20 available for VS2019 16.11+ 2022-02-11 22:05:20 +00:00
qmake QLibraryInfo: remove load-time variable 2022-02-05 11:57:34 -08:00
src QStringView: add missing constexpr so we can use is_constant_evaluated 2022-02-12 07:59:32 +00:00
tests tst_QSystemSemaphore: give proper path to test-helper 2022-02-12 00:01:08 +01:00
util Bump version to 6.4.0 2022-01-31 17:20:06 +02:00
.cmake.conf Bump version to 6.4.0 2022-01-31 17:20:06 +02:00
.gitattributes Give batch files CRLF line endings 2020-11-04 15:02:29 +00:00
.gitignore Assume qhelpgenerator in libexec instead of bin 2021-11-08 19:27:32 +01:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
CMakeLists.txt Use REALPATH based check for symbolic links on Windows 2022-01-07 14:31:38 +01:00
conanfile.py Use common install functionality 2022-02-04 19:19:19 +02:00
config_help.txt configure: Introduce -submodules option 2022-02-03 21:21:29 +01:00
configure Remove unsupported, host-related options from configure shell script 2021-08-05 02:44:27 +02:00
configure.bat Fix our usage of CMake script mode in Windows configure 2021-08-20 19:44:43 +02:00
configure.cmake GHS compiler doesn't support signaling NaNs for double 2022-02-09 16:33:46 +02:00
dependencies.yaml Re-add dependencies.yaml now that qt5.git wip/qt6 builds fine 2019-09-18 13:19:31 +02:00
LICENSE.FDL Remove trailing whitespace in LICENSE.FDL 2021-11-26 18:28:49 +01:00
LICENSE.GPL2 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3-EXCEPT Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.LGPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.QT-LICENSE-AGREEMENT Update latest qt license agreement 2021-12-02 14:16:49 +00:00
qt_cmdline.cmake CMake: Add support building Qt with the 'mold' linker 2022-01-20 19:01:27 +01:00
sync.profile Implement generating of a module cpp export header 2021-06-24 20:40:49 +02:00