cmake -S . -B build -DNB_sanitizer=0 -DNB_STANDALONE_PROJECT=0 -DBUILD_SHARED_LIBS=1
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.10 will be removed from a future version of
CMake.
Update the VERSION argument <min> value. Or, use the <min>...<max> syntax
to tell CMake that the project requires at least <min> but has been updated
to work with policies introduced by <max> or earlier.
-- The CXX compiler identification is Clang 19.1.7
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /nix/store/2xp6f0h7ssrns8a6kz0swnynw7j2vvq7-clang-wrapper-19.1.7/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Clang 19.1.7, C++11, CMAKE_CXX_FLAGS=
-- Configuring done (0.4s)
-- Generating done (0.0s)
CMake Warning:
Manually-specified variables were not used by the project:
NB_STANDALONE_PROJECT
-- Build files have been written to: /Users/bogdb/src/nanobench/build
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.10 will be removed from a future version of
CMake.
Update the VERSION argument <min> value. Or, use the <min>...<max> syntax
to tell CMake that the project requires at least <min> but has been updated
to work with policies introduced by <max> or earlier.
-- The CXX compiler identification is Clang 19.1.7
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /nix/store/2xp6f0h7ssrns8a6kz0swnynw7j2vvq7-clang-wrapper-19.1.7/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Clang 19.1.7, C++11, CMAKE_CXX_FLAGS=
-- Configuring done (0.4s)
-- Generating done (0.0s)
CMake Warning:
Manually-specified variables were not used by the project:
NB_STANDALONE_PROJECT
-- Build files have been written to: /Users/bogdb/src/nanobench/build
[ 2%] Building CXX object CMakeFiles/nb.dir/src/test/app/nanobench.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/app/nanobench.cpp:2:
/Users/bogdb/src/nanobench/src/include/nanobench.h:1722:13: warning: 'switch' missing 'default' label [-Wswitch-default]
1722 | switch (n.type) {
| ^
/Users/bogdb/src/nanobench/src/include/nanobench.h:1752:13: warning: 'switch' missing 'default' label [-Wswitch-default]
1752 | switch (n.type) {
| ^
/Users/bogdb/src/nanobench/src/include/nanobench.h:1911:9: warning: 'switch' missing 'default' label [-Wswitch-default]
1911 | switch (n.type) {
| ^
/Users/bogdb/src/nanobench/src/include/nanobench.h:2210:9: warning: 'switch' missing 'default' label [-Wswitch-default]
2210 | switch (mState) {
| ^
/Users/bogdb/src/nanobench/src/include/nanobench.h:1504:13: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
1504 | begin += 2;
| ^~~~~
/Users/bogdb/src/nanobench/src/include/nanobench.h:1511:43: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
1511 | nodes.emplace_back(Node{*tpl, *tpl + std::strlen(*tpl), std::vector<Node>{}, Node::Type::content});
| ^~~~
/Users/bogdb/src/nanobench/src/include/nanobench.h:1516:39: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
1516 | nodes.emplace_back(Node{*tpl, begin - 2, std::vector<Node>{}, Node::Type::content});
| ^~~~~
/Users/bogdb/src/nanobench/src/include/nanobench.h:1520:16: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
1520 | *tpl = end + 2;
| ^~~
/Users/bogdb/src/nanobench/src/include/nanobench.h:1528:37: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
1528 | nodes.emplace_back(Node{begin + 1, end, parseMustacheTemplate(tpl), Node::Type::section});
| ^~~~~
/Users/bogdb/src/nanobench/src/include/nanobench.h:1533:37: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
1533 | nodes.emplace_back(Node{begin + 1, end, parseMustacheTemplate(tpl), Node::Type::inverted_section});
| ^~~~~
10 warnings generated.
[ 5%] Building CXX object CMakeFiles/nb.dir/src/test/app/doctest.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/app/doctest.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3308:16: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3308 | for(;; a++, b++) {
| ^
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3308:21: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3308 | for(;; a++, b++) {
| ^
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3505:20: warning: unsafe buffer access [-Wunsafe-buffer-usage]
3505 | return m_atomics[tlsLaneIdx].atomic;
| ^~~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3600:9: warning: unsafe buffer access [-Wunsafe-buffer-usage]
3600 | buf[sz] = '\0';
| ^~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3608:9: warning: unsafe buffer access [-Wunsafe-buffer-usage]
3608 | data.ptr[sz] = '\0';
| ^~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3613:72: warning: unsafe buffer access [-Wunsafe-buffer-usage]
3613 | void String::setOnHeap() noexcept { *reinterpret_cast<unsigned char*>(&buf[last]) = 128; }
| ^~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3614:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
3614 | void String::setLast(size_type in) noexcept { buf[last] = char(in); }
| ^~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3616:24: warning: unsafe buffer access [-Wunsafe-buffer-usage]
3616 | if (isOnStack()) { buf[sz] = '\0'; setLast(last - sz); }
| ^~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3617:12: warning: unsafe buffer access [-Wunsafe-buffer-usage]
3617 | else { data.ptr[sz] = '\0'; data.size = sz; }
| ^~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3669:20: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3669 | memcpy(buf + my_old_size, other.c_str(), other_size + 1);
| ^~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3683:20: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3683 | memcpy(data.ptr + my_old_size, other.c_str(), other_size + 1);
| ^~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3689:20: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3689 | memcpy(data.ptr + my_old_size, other.c_str(), other_size + 1);
| ^~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3705:20: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3705 | memcpy(data.ptr + my_old_size, other.c_str(), other_size + 1);
| ^~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3735:16: warning: unsafe buffer access [-Wunsafe-buffer-usage]
3735 | return reinterpret_cast<char*>(buf)[i];
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3736:12: warning: unsafe buffer access [-Wunsafe-buffer-usage]
3736 | return data.ptr[i];
| ^~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3742:34: warning: unsafe buffer access [-Wunsafe-buffer-usage]
3742 | return last - (size_type(buf[last]) & 31); // using "last" would work only if "len" is 32
| ^~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3756:19: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3756 | memmove(cptr, cptr + pos, cnt);
| ^~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3763:20: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3763 | return String{ c_str() + pos, cnt };
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3768:23: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3768 | const char* end = begin + size();
| ^~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3769:22: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3769 | const char* it = begin + pos;
| ^~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3770:35: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3770 | for (; it < end && *it != ch; it++);
| ^~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3777:22: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3777 | const char* it = begin + std::min(pos, size() - 1);
| ^~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3778:38: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3778 | for (; it >= begin && *it != ch; it--);
| ^~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:3892:20: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
3892 | return forward + 1;
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4122:13: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
4122 | wild++;
| ^~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4123:13: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
4123 | str++;
| ^~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4128:24: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
4128 | if(!*++wild) {
| ^~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4132:22: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
4132 | cp = str + 1;
| ^~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4135:17: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
4135 | wild++;
| ^~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4136:17: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
4136 | str++;
| ^~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4139:24: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
4139 | str = cp++; //!OCLINT parameter reassignment
| ^~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4144:13: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
4144 | wild++;
| ^~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4170:22: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
4170 | while ((c = *str++))
| ^~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4803:35: warning: unsafe buffer access [-Wunsafe-buffer-usage]
4803 | SignalDefs& def = signalDefs[i];
| ^~~~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4833:27: warning: unsafe buffer access [-Wunsafe-buffer-usage]
4833 | sigaction(signalDefs[i].id, &sa, &oldSigActions[i]);
| ^~~~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4833:51: warning: unsafe buffer access [-Wunsafe-buffer-usage]
4833 | sigaction(signalDefs[i].id, &sa, &oldSigActions[i]);
| ^~~~~~~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4842:31: warning: unsafe buffer access [-Wunsafe-buffer-usage]
4842 | sigaction(signalDefs[i].id, &oldSigActions[i], nullptr);
| ^~~~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:4842:50: warning: unsafe buffer access [-Wunsafe-buffer-usage]
4842 | sigaction(signalDefs[i].id, &oldSigActions[i], nullptr);
| ^~~~~~~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:5434:21: warning: unsafe buffer access [-Wunsafe-buffer-usage]
5434 | contexts[i]->stringify(&ss);
| ^~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:5492:74: warning: unsafe buffer access [-Wunsafe-buffer-usage]
5492 | xml.scopedElement("TestCase").writeAttribute("name", in.data[i]->m_name)
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:5493:54: warning: unsafe buffer access [-Wunsafe-buffer-usage]
5493 | .writeAttribute("testsuite", in.data[i]->m_test_suite)
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:5494:74: warning: unsafe buffer access [-Wunsafe-buffer-usage]
5494 | .writeAttribute("filename", skipPathFromFilename(in.data[i]->m_file.c_str()))
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:5495:54: warning: unsafe buffer access [-Wunsafe-buffer-usage]
5495 | .writeAttribute("line", line(in.data[i]->m_line))
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:5496:52: warning: unsafe buffer access [-Wunsafe-buffer-usage]
5496 | .writeAttribute("skipped", in.data[i]->m_skip);
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:5502:75: warning: unsafe buffer access [-Wunsafe-buffer-usage]
5502 | xml.scopedElement("TestSuite").writeAttribute("name", in.data[i]->m_test_suite);
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:5936:21: warning: unsafe buffer access [-Wunsafe-buffer-usage]
5936 | contexts[i]->stringify(&s);
| ^~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6014:21: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6014 | contexts[i]->stringify(&s);
| ^~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6226:41: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6226 | s << Color::None << in.data[i]->m_name << "\n";
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6239:41: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6239 | s << Color::None << in.data[i]->m_test_suite << "\n";
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6359:26: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6359 | << stringified_contexts[i - 1] << "\n";
| ^~~~~~~~~~~~~~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6454:37: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6454 | auto temp = std::strstr(argv[index], pattern);
| ^~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6458:40: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6458 | auto curr = argv[index];
| ^~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6460:25: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
6460 | if(*curr++ != '-') {
| ^~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6465:39: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6465 | if(noBadCharsFound && argv[index][0] == '-') {
| ^~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6468:25: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
6468 | temp += strlen(pattern);
| ^~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6491:40: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
6491 | if(parseOptionImpl(argc, argv, pattern + strlen(DOCTEST_CONFIG_OPTIONS_PREFIX), value))
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6519:31: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
6519 | const char* end = current + strlen(current);
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6521:35: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage]
6521 | char character = *current++;
| ^~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6576:41: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6576 | if (parsedValue.compare(positive[i], true) == 0) {
| ^~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6580:41: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6580 | if (parsedValue.compare(negative[i], true) == 0) {
| ^~~~~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6895:35: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6895 | const auto temp = first[i];
| ^~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6897:17: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6897 | first[i] = first[idxToSwap];
| ^~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6897:36: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6897 | first[i] = first[idxToSwap];
| ^~~~~
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:6898:17: warning: unsafe buffer access [-Wunsafe-buffer-usage]
6898 | first[idxToSwap] = temp;
| ^~~~~
65 warnings generated.
[ 8%] Building CXX object CMakeFiles/nb.dir/src/test/example_always_the_same.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_always_the_same.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 11%] Building CXX object CMakeFiles/nb.dir/src/test/example_atomic.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_atomic.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 13%] Building CXX object CMakeFiles/nb.dir/src/test/example_branch_misses.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_branch_misses.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 16%] Building CXX object CMakeFiles/nb.dir/src/test/example_complexity.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_complexity.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 19%] Building CXX object CMakeFiles/nb.dir/src/test/example_containers.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_containers.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 22%] Building CXX object CMakeFiles/nb.dir/src/test/example_csv.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_csv.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 25%] Building CXX object CMakeFiles/nb.dir/src/test/example_hide_output.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_hide_output.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 27%] Building CXX object CMakeFiles/nb.dir/src/test/example_preconfigured_name.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_preconfigured_name.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 30%] Building CXX object CMakeFiles/nb.dir/src/test/example_pyperf.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_pyperf.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 33%] Building CXX object CMakeFiles/nb.dir/src/test/example_random_number_generators.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_random_number_generators.cpp:6:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 36%] Building CXX object CMakeFiles/nb.dir/src/test/example_random_uniform01.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_random_uniform01.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 38%] Building CXX object CMakeFiles/nb.dir/src/test/example_random2.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_random2.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 41%] Building CXX object CMakeFiles/nb.dir/src/test/example_shuffle.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/example_shuffle.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 44%] Building CXX object CMakeFiles/nb.dir/src/test/tutorial_complexity_set.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/tutorial_complexity_set.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 47%] Building CXX object CMakeFiles/nb.dir/src/test/tutorial_complexity_sort.cpp.o
In file included from /Users/bogdb/src/nanobench/src/test/tutorial_complexity_sort.cpp:2:
/Users/bogdb/src/nanobench/src/test/thirdparty/doctest/doctest.h:611:47: warning: unsafe buffer access [-Wunsafe-buffer-usage]
611 | bool isOnStack() const noexcept { return (buf[last] & 128) == 0; }
| ^~~
1 warning generated.
[ 50%] Building CXX object CMakeFiles/nb.dir/src/test/tutorial_context.cpp.o
/Users/bogdb/src/nanobench/src/test/tutorial_context.cpp:42:10: error: no matching member function for call to 'run'
39 | bench.context("scalar", "f32")
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40 | .context("foo", "bar")
| ~~~~~~~~~~~~~~~~~~~~~~
41 | .run("+=", plus_eq<float>)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
42 | .run("fma", fma<float>);
| ~^~~
/Users/bogdb/src/nanobench/src/include/nanobench.h:1234:15: note: candidate template ignored: couldn't infer template argument 'Op'
1234 | Bench& Bench::run(char const* benchmarkName, Op&& op) {
| ^
/Users/bogdb/src/nanobench/src/include/nanobench.h:1240:15: note: candidate template ignored: couldn't infer template argument 'Op'
1240 | Bench& Bench::run(std::string const& benchmarkName, Op&& op) {
| ^
/Users/bogdb/src/nanobench/src/include/nanobench.h:1212:15: note: candidate function template not viable: requires single argument 'op', but 2 arguments were provided
1212 | Bench& Bench::run(Op&& op) {
| ^ ~~~~~~~
/Users/bogdb/src/nanobench/src/test/tutorial_context.cpp:46:10: error: no matching member function for call to 'run'
43 | bench.context("scalar", "f64")
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44 | .context("foo", "baz")
| ~~~~~~~~~~~~~~~~~~~~~~
45 | .run("+=", plus_eq<double>)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
46 | .run("fma", fma<double>);
| ~^~~
/Users/bogdb/src/nanobench/src/include/nanobench.h:1234:15: note: candidate template ignored: couldn't infer template argument 'Op'
1234 | Bench& Bench::run(char const* benchmarkName, Op&& op) {
| ^
/Users/bogdb/src/nanobench/src/include/nanobench.h:1240:15: note: candidate template ignored: couldn't infer template argument 'Op'
1240 | Bench& Bench::run(std::string const& benchmarkName, Op&& op) {
| ^
/Users/bogdb/src/nanobench/src/include/nanobench.h:1212:15: note: candidate function template not viable: requires single argument 'op', but 2 arguments were provided
1212 | Bench& Bench::run(Op&& op) {
| ^ ~~~~~~~
2 errors generated.
make[2]: *** [CMakeFiles/nb.dir/build.make:317: CMakeFiles/nb.dir/src/test/tutorial_context.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:219: CMakeFiles/nb.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Note that on linux I don't have this problem.
Hi,
I am trying to compile
nanobenchon macos-15.4 with clang-19.1.7 (although 20.1.2 also fails) and am encountering some issues:-DNB_sanitizer=OFF. My solution to get it to (at least try to) build was to add a specific exception in the CMake files:The full cmake invocation is:
Output:
Note that on linux I don't have this problem.