nanobench 4.3.11 tests do not build with gcc 14.2.1
intelfx opened this issue · 0 comments
intelfx commented
Compiler and flags:
$ gcc -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --enable-languages=ada,c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 14.2.1 20240910 (GCC)
$ declare -p CFLAGS CXXFLAGS
declare -x CFLAGS="-march=x86-64-v3 -mpclmul -O2 -pipe -fno-plt -fexceptions -Wp,-U_FORTIFY_SOURCE -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fuse-ld=mold -flto=auto -fuse-linker-plugin"
declare -x CXXFLAGS="-march=x86-64-v3 -mpclmul -O2 -pipe -fno-plt -fexceptions -Wp,-U_FORTIFY_SOURCE -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fuse-ld=mold -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -fuse-linker-plugin"CMake invocation:
cmake \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX="/usr" \
-S "." -B "build" \
-Wno-dev
cmake --build "build"Build log:
$ make VERBOSE=1
<...>
[ 8%] Building CXX object CMakeFiles/nb.dir/src/test/unit_to_s.cpp.o
/usr/bin/ccache /usr/lib/ccache/bin/c++ -I/build/nanobench/src/nanobench-4.3.11/src/include -I/build/nanobench/src/nanobench-4.3.11/src/test -march=x86-64-v3 -mpclmul -O2 -pipe -fno-plt -fexceptions -Wp,-U_FORTIFY_SOURCE -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fuse-ld=mold -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -fuse-linker-plugin -O3 -DNDEBUG -std=c++11 -fdiagnostics-color -Wno-zero-as-null-pointer-constant -Werror -pedantic -pedantic-errors -fvisibility=hidden -fstrict-aliasing -Wall -Wextra -fdiagnostics-show-option -Wconversion -Wold-style-cast -Wfloat-equal -Wlogical-op -Wundef -Wredundant-decls -Wshadow -Wstrict-overflow=2 -Wwrite-strings -Wpointer-arith -Wcast-qual -Wformat=2 -Wmissing-include-dirs -Wcast-align -Wswitch-enum -Wnon-virtual-dtor -Wctor-dtor-privacy -Wsign-conversion -Wdisabled-optimization -Weffc++ -Winvalid-pch -Wmissing-declarations -Woverloaded-virtual -Wnoexcept -Wdouble-promotion -Wtrampolines -Wvector-operation-performance -Wshift-overflow=2 -Wnull-dereference -Wduplicated-cond -Walloc-zero -Walloca -Wduplicated-branches -Wcast-align=strict -ggdb -g -MD -MT CMakeFiles/nb.dir/src/test/unit_to_s.cpp.o -MF CMakeFiles/nb.dir/src/test/unit_to_s.cpp.o.d -o CMakeFiles/nb.dir/src/test/unit_to_s.cpp.o -c /build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp
In file included from /build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:1:
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2205:48: error: integer constant is so large that it is unsigned
2205 | __LINE__, #__VA_ARGS__); \
| ^~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2214:9: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_2’
2214 | DOCTEST_ASSERT_IMPLEMENT_2(assert_type, __VA_ARGS__); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2233:30: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_1’
2233 | #define DOCTEST_REQUIRE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_REQUIRE, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2770:22: note: in expansion of macro ‘DOCTEST_REQUIRE’
2770 | #define REQUIRE(...) DOCTEST_REQUIRE(__VA_ARGS__)
| ^~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:29:5: note: in expansion of macro ‘REQUIRE’
29 | REQUIRE(to_s(UINT64_C(18446744073709551615)) == "18446744073709551615");
| ^~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:10:18: error: ‘uint64_t’ was not declared in this scope
10 | std::string to_s(uint64_t n) {
| ^~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:6:1: note: ‘uint64_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
5 | #include <iostream> // needed in this test, see https://github.com/onqtam/doctest/issues/126#issuecomment-381746547
+++ |+#include <cstdint>
6 | #include <string>
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:10:30: error: expected ‘,’ or ‘;’ before ‘{’ token
10 | std::string to_s(uint64_t n) {
| ^
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp: In lambda function:
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:24:18: error: ‘UINT64_C’ was not declared in this scope
24 | REQUIRE(to_s(UINT64_C(123)) == "123");
| ^~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:1964:9: note: in definition of macro ‘DOCTEST_WRAP_IN_TRY’
1964 | x; \
| ^
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2214:9: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_2’
2214 | DOCTEST_ASSERT_IMPLEMENT_2(assert_type, __VA_ARGS__); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2233:30: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_1’
2233 | #define DOCTEST_REQUIRE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_REQUIRE, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2770:22: note: in expansion of macro ‘DOCTEST_REQUIRE’
2770 | #define REQUIRE(...) DOCTEST_REQUIRE(__VA_ARGS__)
| ^~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:24:5: note: in expansion of macro ‘REQUIRE’
24 | REQUIRE(to_s(UINT64_C(123)) == "123");
| ^~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp: In lambda function:
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:25:18: error: ‘UINT64_C’ was not declared in this scope
25 | REQUIRE(to_s(UINT64_C(0)) == "0");
| ^~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:1964:9: note: in definition of macro ‘DOCTEST_WRAP_IN_TRY’
1964 | x; \
| ^
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2214:9: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_2’
2214 | DOCTEST_ASSERT_IMPLEMENT_2(assert_type, __VA_ARGS__); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2233:30: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_1’
2233 | #define DOCTEST_REQUIRE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_REQUIRE, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2770:22: note: in expansion of macro ‘DOCTEST_REQUIRE’
2770 | #define REQUIRE(...) DOCTEST_REQUIRE(__VA_ARGS__)
| ^~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:25:5: note: in expansion of macro ‘REQUIRE’
25 | REQUIRE(to_s(UINT64_C(0)) == "0");
| ^~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp: In lambda function:
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:26:18: error: ‘UINT64_C’ was not declared in this scope
26 | REQUIRE(to_s(UINT64_C(10)) == "10");
| ^~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:1964:9: note: in definition of macro ‘DOCTEST_WRAP_IN_TRY’
1964 | x; \
| ^
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2214:9: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_2’
2214 | DOCTEST_ASSERT_IMPLEMENT_2(assert_type, __VA_ARGS__); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2233:30: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_1’
2233 | #define DOCTEST_REQUIRE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_REQUIRE, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2770:22: note: in expansion of macro ‘DOCTEST_REQUIRE’
2770 | #define REQUIRE(...) DOCTEST_REQUIRE(__VA_ARGS__)
| ^~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:26:5: note: in expansion of macro ‘REQUIRE’
26 | REQUIRE(to_s(UINT64_C(10)) == "10");
| ^~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp: In lambda function:
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:27:18: error: ‘UINT64_C’ was not declared in this scope
27 | REQUIRE(to_s(UINT64_C(123456789)) == "123456789");
| ^~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:1964:9: note: in definition of macro ‘DOCTEST_WRAP_IN_TRY’
1964 | x; \
| ^
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2214:9: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_2’
2214 | DOCTEST_ASSERT_IMPLEMENT_2(assert_type, __VA_ARGS__); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2233:30: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_1’
2233 | #define DOCTEST_REQUIRE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_REQUIRE, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2770:22: note: in expansion of macro ‘DOCTEST_REQUIRE’
2770 | #define REQUIRE(...) DOCTEST_REQUIRE(__VA_ARGS__)
| ^~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:27:5: note: in expansion of macro ‘REQUIRE’
27 | REQUIRE(to_s(UINT64_C(123456789)) == "123456789");
| ^~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp: In lambda function:
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:28:18: error: ‘UINT64_C’ was not declared in this scope
28 | REQUIRE(to_s(UINT64_C(9876543210)) == "9876543210");
| ^~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:1964:9: note: in definition of macro ‘DOCTEST_WRAP_IN_TRY’
1964 | x; \
| ^
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2214:9: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_2’
2214 | DOCTEST_ASSERT_IMPLEMENT_2(assert_type, __VA_ARGS__); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2233:30: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_1’
2233 | #define DOCTEST_REQUIRE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_REQUIRE, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2770:22: note: in expansion of macro ‘DOCTEST_REQUIRE’
2770 | #define REQUIRE(...) DOCTEST_REQUIRE(__VA_ARGS__)
| ^~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:28:5: note: in expansion of macro ‘REQUIRE’
28 | REQUIRE(to_s(UINT64_C(9876543210)) == "9876543210");
| ^~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp: In lambda function:
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:29:18: error: ‘UINT64_C’ was not declared in this scope
29 | REQUIRE(to_s(UINT64_C(18446744073709551615)) == "18446744073709551615");
| ^~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:1964:9: note: in definition of macro ‘DOCTEST_WRAP_IN_TRY’
1964 | x; \
| ^
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2214:9: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_2’
2214 | DOCTEST_ASSERT_IMPLEMENT_2(assert_type, __VA_ARGS__); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2233:30: note: in expansion of macro ‘DOCTEST_ASSERT_IMPLEMENT_1’
2233 | #define DOCTEST_REQUIRE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_REQUIRE, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/thirdparty/doctest/doctest.h:2770:22: note: in expansion of macro ‘DOCTEST_REQUIRE’
2770 | #define REQUIRE(...) DOCTEST_REQUIRE(__VA_ARGS__)
| ^~~~~~~~~~~~~~~
/build/nanobench/src/nanobench-4.3.11/src/test/unit_to_s.cpp:29:5: note: in expansion of macro ‘REQUIRE’
29 | REQUIRE(to_s(UINT64_C(18446744073709551615)) == "18446744073709551615");
| ^~~~~~~
make[2]: *** [CMakeFiles/nb.dir/build.make:524: CMakeFiles/nb.dir/src/test/unit_to_s.cpp.o] Error 1