google / benchmark

A microbenchmark support library
Apache License 2.0
8.59k stars 1.57k forks source link

[BUG] error: too many arguments provided to function-like macro invocation #1805

Closed yurivict closed 2 weeks ago

yurivict commented 2 weeks ago

Describe the bug

[ 83% 102/115] /usr/local/libexec/ccache/c++ -DHAVE_POSIX_REGEX -DHAVE_STD_REGEX -DHAVE_STEADY_CLOCK -DHAVE_THREAD_SAFETY_ATTRIBUTES -DTEST_BENCHMARK_LIBRARY_HAS_NO_ASSERTIONS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/usr/ports/devel/benchmark/work/benchmark-1.8.4/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing  -Wall  -Wextra  -Wshadow  -Wfloat-equal  -Wold-style-cast  -Wconversion  -Werror  -pedantic  -pedantic-errors  -Wshorten-64-to-32  -fstrict-aliasing  -Wno-deprecated-declarations  -Wno-deprecated  -Wstrict-aliasing  -Wthread-safety  -Wno-unused-variable -O2 -pipe -fstack-protector-strong -fno-strict-aliasing     -std=c++98 -fvisibility=hidden -fvisibility-inlines-hidden   -UNDEBUG -MD -MT test/CMakeFiles/cxx03_test.dir/cxx03_test.cc.o -MF test/CMakeFiles/cxx03_test.dir/cxx03_test.cc.o.d -o test/CMakeFiles/cxx03_test.dir/cxx03_test.cc.o -c /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc
FAILED: test/CMakeFiles/cxx03_test.dir/cxx03_test.cc.o 
/usr/local/libexec/ccache/c++ -DHAVE_POSIX_REGEX -DHAVE_STD_REGEX -DHAVE_STEADY_CLOCK -DHAVE_THREAD_SAFETY_ATTRIBUTES -DTEST_BENCHMARK_LIBRARY_HAS_NO_ASSERTIONS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/usr/ports/devel/benchmark/work/benchmark-1.8.4/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing  -Wall  -Wextra  -Wshadow  -Wfloat-equal  -Wold-style-cast  -Wconversion  -Werror  -pedantic  -pedantic-errors  -Wshorten-64-to-32  -fstrict-aliasing  -Wno-deprecated-declarations  -Wno-deprecated  -Wstrict-aliasing  -Wthread-safety  -Wno-unused-variable -O2 -pipe -fstack-protector-strong -fno-strict-aliasing     -std=c++98 -fvisibility=hidden -fvisibility-inlines-hidden   -UNDEBUG -MD -MT test/CMakeFiles/cxx03_test.dir/cxx03_test.cc.o -MF test/CMakeFiles/cxx03_test.dir/cxx03_test.cc.o.d -o test/CMakeFiles/cxx03_test.dir/cxx03_test.cc.o -c /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1787:
In file included from /usr/include/c++/v1/__algorithm/adjacent_find.h:14:
/usr/include/c++/v1/__algorithm/iterator_operations.h:105:9: error: too many arguments provided to function-like macro invocation
  105 |         "It looks like your iterator's `iterator_traits<It>::reference` does not match the return type of "
      |         ^
/usr/include/sys/cdefs.h:282:9: note: macro '_Static_assert' defined here
  282 | #define _Static_assert(x, y)    __Static_assert(x, __COUNTER__)
      |         ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1787:
In file included from /usr/include/c++/v1/__algorithm/adjacent_find.h:14:
/usr/include/c++/v1/__algorithm/iterator_operations.h:107:90: error: expected '('
  107 |         "and can lead to dangling reference issues at runtime, so we are flagging this.");
      |                                                                                          ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1790:
In file included from /usr/include/c++/v1/__algorithm/binary_search.h:14:
/usr/include/c++/v1/__algorithm/lower_bound.h:52:61: error: too many arguments provided to function-like macro invocation
   52 |   static_assert(__is_callable<_Compare, decltype(*__first), const _Tp&>::value, "The comparator has to be callable");
      |                                                             ^
/usr/include/sys/cdefs.h:282:9: note: macro '_Static_assert' defined here
  282 | #define _Static_assert(x, y)    __Static_assert(x, __COUNTER__)
      |         ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1790:
In file included from /usr/include/c++/v1/__algorithm/binary_search.h:14:
/usr/include/c++/v1/__algorithm/lower_bound.h:52:117: error: expected '('
   52 |   static_assert(__is_callable<_Compare, decltype(*__first), const _Tp&>::value, "The comparator has to be callable");
      |                                                                                                                     ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1794:
In file included from /usr/include/c++/v1/__algorithm/copy.h:12:
In file included from /usr/include/c++/v1/__algorithm/copy_move_common.h:18:
/usr/include/c++/v1/__string/constexpr_c_functions.h:59:17: error: too many arguments provided to function-like macro invocation
   59 |                 "_Tp and _Up have to be trivially lexicographically comparable");
      |                 ^
/usr/include/sys/cdefs.h:282:9: note: macro '_Static_assert' defined here
  282 | #define _Static_assert(x, y)    __Static_assert(x, __COUNTER__)
      |         ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1794:
In file included from /usr/include/c++/v1/__algorithm/copy.h:12:
In file included from /usr/include/c++/v1/__algorithm/copy_move_common.h:18:
/usr/include/c++/v1/__string/constexpr_c_functions.h:59:81: error: expected '('
   59 |                 "_Tp and _Up have to be trivially lexicographically comparable");
      |                                                                                 ^
/usr/include/c++/v1/__string/constexpr_c_functions.h:92:17: error: too many arguments provided to function-like macro invocation
   92 |                 "_Tp and _Up have to be trivially equality comparable");
      |                 ^
/usr/include/sys/cdefs.h:282:9: note: macro '_Static_assert' defined here
  282 | #define _Static_assert(x, y)    __Static_assert(x, __COUNTER__)
      |         ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1794:
In file included from /usr/include/c++/v1/__algorithm/copy.h:12:
In file included from /usr/include/c++/v1/__algorithm/copy_move_common.h:18:
/usr/include/c++/v1/__string/constexpr_c_functions.h:92:72: error: expected '('
   92 |                 "_Tp and _Up have to be trivially equality comparable");
      |                                                                        ^
/usr/include/c++/v1/__string/constexpr_c_functions.h:118:17: error: too many arguments provided to function-like macro invocation
  118 |                 "Calling memchr on non-trivially equality comparable types is unsafe.");
      |                 ^
/usr/include/sys/cdefs.h:282:9: note: macro '_Static_assert' defined here
  282 | #define _Static_assert(x, y)    __Static_assert(x, __COUNTER__)
      |         ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1794:
In file included from /usr/include/c++/v1/__algorithm/copy.h:12:
In file included from /usr/include/c++/v1/__algorithm/copy_move_common.h:18:
/usr/include/c++/v1/__string/constexpr_c_functions.h:118:88: error: expected '('
  118 |                 "Calling memchr on non-trivially equality comparable types is unsafe.");
      |                                                                                        ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1794:
In file included from /usr/include/c++/v1/__algorithm/copy.h:15:
In file included from /usr/include/c++/v1/__algorithm/min.h:14:
/usr/include/c++/v1/__algorithm/min_element.h:56:51: error: too many arguments provided to function-like macro invocation
   56 |       __is_callable<_Compare, decltype(*__first), decltype(*__first)>::value, "The comparator has to be callable");
      |                                                   ^
/usr/include/c++/v1/__config:637:27: note: expanded from macro 'decltype'
  637 | #    define decltype(...) __decltype(__VA_ARGS__)
      |                           ^
/usr/include/sys/cdefs.h:282:9: note: macro '_Static_assert' defined here
  282 | #define _Static_assert(x, y)    __Static_assert(x, __COUNTER__)
      |         ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1794:
In file included from /usr/include/c++/v1/__algorithm/copy.h:15:
In file included from /usr/include/c++/v1/__algorithm/min.h:14:
/usr/include/c++/v1/__algorithm/min_element.h:56:115: error: expected '('
   56 |       __is_callable<_Compare, decltype(*__first), decltype(*__first)>::value, "The comparator has to be callable");
      |                                                                                                                   ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1801:
/usr/include/c++/v1/__algorithm/equal_range.h:65:61: error: too many arguments provided to function-like macro invocation
   65 |   static_assert(__is_callable<_Compare, decltype(*__first), const _Tp&>::value, "The comparator has to be callable");
      |                                                             ^
/usr/include/sys/cdefs.h:282:9: note: macro '_Static_assert' defined here
  282 | #define _Static_assert(x, y)    __Static_assert(x, __COUNTER__)
      |         ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1801:
/usr/include/c++/v1/__algorithm/equal_range.h:65:117: error: expected '('
   65 |   static_assert(__is_callable<_Compare, decltype(*__first), const _Tp&>::value, "The comparator has to be callable");
      |                                                                                                                     ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1804:
In file included from /usr/include/c++/v1/__algorithm/find.h:31:
/usr/include/c++/v1/cwchar:233:17: error: too many arguments provided to function-like macro invocation
  233 |                 "Calling wmemchr on non-trivially equality comparable types is unsafe.");
      |                 ^
/usr/include/sys/cdefs.h:282:9: note: macro '_Static_assert' defined here
  282 | #define _Static_assert(x, y)    __Static_assert(x, __COUNTER__)
      |         ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1804:
In file included from /usr/include/c++/v1/__algorithm/find.h:31:
/usr/include/c++/v1/cwchar:233:89: error: expected '('
  233 |                 "Calling wmemchr on non-trivially equality comparable types is unsafe.");
      |                                                                                         ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1805:
In file included from /usr/include/c++/v1/__algorithm/find_end.h:15:
/usr/include/c++/v1/__algorithm/search.h:166:70: error: too many arguments provided to function-like macro invocation
  166 |   static_assert(__is_callable<_BinaryPredicate, decltype(*__first1), decltype(*__first2)>::value,
      |                                                                      ^
/usr/include/c++/v1/__config:637:27: note: expanded from macro 'decltype'
  637 | #    define decltype(...) __decltype(__VA_ARGS__)
      |                           ^
/usr/include/sys/cdefs.h:282:9: note: macro '_Static_assert' defined here
  282 | #define _Static_assert(x, y)    __Static_assert(x, __COUNTER__)
      |         ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1805:
In file included from /usr/include/c++/v1/__algorithm/find_end.h:15:
/usr/include/c++/v1/__algorithm/search.h:167:54: error: expected '('
  167 |                 "BinaryPredicate has to be callable");
      |                                                      ^
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/test/cxx03_test.cc:5:
In file included from /usr/ports/devel/benchmark/work/benchmark-1.8.4/include/benchmark/benchmark.h:179:
In file included from /usr/include/c++/v1/algorithm:1810:
In file included from /usr/include/c++/v1/__algorithm/for_each.h:16:
In file included from /usr/include/c++/v1/__ranges/movable_box.h:23:
In file included from /usr/include/c++/v1/optional:1294:
In file included from /usr/include/c++/v1/memory:925:
In file included from /usr/include/c++/v1/__memory/allocate_at_least.h:13:
/usr/include/c++/v1/__memory/allocator_traits.h:166:54: error: too many arguments provided to function-like macro invocation
  166 |   static_assert(__has_rebind_other<_Tp, _Up>::value, "This allocator has to implement rebind");
      |                                                      ^
/usr/include/sys/cdefs.h:282:9: note: macro '_Static_assert' defined here
  282 | #define _Static_assert(x, y)    __Static_assert(x, __COUNTER__)
      |         ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]

System Which OS, compiler, and compiler version are you using:

To reproduce make test