diff --git a/libc/utils/benchmarks/CMakeLists.txt b/libc/utils/benchmarks/CMakeLists.txt --- a/libc/utils/benchmarks/CMakeLists.txt +++ b/libc/utils/benchmarks/CMakeLists.txt @@ -24,6 +24,7 @@ -DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER} -DCMAKE_CXX_FLAGS:STRING=${GOOGLE_BENCHMARK_TARGET_FLAGS} + -DCMAKE_CXX_STANDARD:STRING=14 -DCMAKE_BUILD_TYPE:STRING=RELEASE -DCMAKE_INSTALL_PREFIX:PATH= -DBENCHMARK_ENABLE_TESTING:BOOL=OFF) diff --git a/libc/utils/benchmarks/JSON.cpp b/libc/utils/benchmarks/JSON.cpp --- a/libc/utils/benchmarks/JSON.cpp +++ b/libc/utils/benchmarks/JSON.cpp @@ -17,9 +17,11 @@ #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/JSON.h" #include "llvm/Support/MathExtras.h" + #include #include #include +#include #include namespace llvm { @@ -48,7 +50,7 @@ static Error fromJson(const json::Value &V, std::string &Out) { if (auto S = V.getAsString()) { - Out = *S; + Out = std::string(*S); return Error::success(); } return createStringError(errc::io_error, "Can't parse String"); diff --git a/libc/utils/benchmarks/LibcMemoryBenchmarkMain.cpp b/libc/utils/benchmarks/LibcMemoryBenchmarkMain.cpp --- a/libc/utils/benchmarks/LibcMemoryBenchmarkMain.cpp +++ b/libc/utils/benchmarks/LibcMemoryBenchmarkMain.cpp @@ -17,6 +17,8 @@ #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/raw_ostream.h" +#include + namespace llvm { namespace libc_benchmarks { @@ -61,7 +63,7 @@ size_t Steps = 0; for (auto FunctionName : Runner->getFunctionNames()) { FunctionMeasurements FM; - FM.Name = FunctionName; + FM.Name = std::string(FunctionName); for (size_t Run = 0; Run < Runs; ++Run) { for (uint32_t Size = SR.From; Size <= SR.To; Size += SR.Step) { const auto Result = Runner->benchmark(S.Options, FunctionName, Size);