Author: AnZhong Huang Date: 2020-12-28T11:24:56+03:00 New Revision: a485a59d2172daaee1d5e734da54fbb243f7d54c
URL: https://github.com/llvm/llvm-project/commit/a485a59d2172daaee1d5e734da54fbb243f7d54c DIFF: https://github.com/llvm/llvm-project/commit/a485a59d2172daaee1d5e734da54fbb243f7d54c.diff LOG: [benchmark] Fixed a build error when using CMake 3.15.1 + NDK-R20 std::decay_t used by llvm/utils/benchmark/include/benchmark/benchmark.h is a c++14 feature, but the CMakelist uses c++11, it's the root-cause of build error. There are two options to fix the error. 1) change the CMakelist to support c++14. 2) change std::decay_t to std::decay, it's what the patch done. This bug can only be reproduced by CMake 3.15, we didn't observer the bug with CMake 3.16. But based on the code's logic, it's an obvious bug of LLVM. The upstream code is fine, the problem was introduced by rG1bd6123b781120c9190b9ba58b900cdcb718cdd1. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D93794 Added: Modified: llvm/utils/benchmark/include/benchmark/benchmark.h Removed: ################################################################################ diff --git a/llvm/utils/benchmark/include/benchmark/benchmark.h b/llvm/utils/benchmark/include/benchmark/benchmark.h index ab61c46e9386..0b4baec41755 100644 --- a/llvm/utils/benchmark/include/benchmark/benchmark.h +++ b/llvm/utils/benchmark/include/benchmark/benchmark.h @@ -990,7 +990,7 @@ inline internal::Benchmark* RegisterBenchmark(const char* name, #ifdef BENCHMARK_HAS_CXX11 template <class Lambda> internal::Benchmark* RegisterBenchmark(const char* name, Lambda&& fn) { - using BenchType = internal::LambdaBenchmark<std::decay_t<Lambda>>; + using BenchType = internal::LambdaBenchmark<std::decay<Lambda>>; return internal::RegisterBenchmarkInternal( ::new BenchType(name, std::forward<Lambda>(fn))); } _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits