diff options
author | Kirill Bobyrev <kbobyrev.opensource@gmail.com> | 2018-08-28 10:27:49 +0000 |
---|---|---|
committer | Kirill Bobyrev <kbobyrev.opensource@gmail.com> | 2018-08-28 10:27:49 +0000 |
commit | 6a5c01c7e98f27834da0335a1ff96ec99872e18b (patch) | |
tree | eaeb72b4cb50a0d0587d65d9a5771b90efa8ffa7 | |
parent | f119e27d80a43e250fc8b09453419cfc4e799359 (diff) | |
download | bcm5719-llvm-6a5c01c7e98f27834da0335a1ff96ec99872e18b.tar.gz bcm5719-llvm-6a5c01c7e98f27834da0335a1ff96ec99872e18b.zip |
[benchmark] Silence warning by applying upstream patch
ompiling benchmark library (introduced in D50894) with the latest
bootstrapped Clang produces a lot of warnings, this issue was addressed
in the upstream patch I pushed earlier.
Upstream patch:
https://github.com/google/benchmark/commit/f85304e4e3a0e4e1bf15b91720df4a19e90b589f
`README.LLVM` notes were updated to reflect the latest changes.
Reviewed by: lebedev.ri
Differential Revision: https://reviews.llvm.org/D51342
llvm-svn: 340811
-rw-r--r-- | llvm/utils/benchmark/README.LLVM | 8 | ||||
-rw-r--r-- | llvm/utils/benchmark/include/benchmark/benchmark.h | 16 | ||||
-rw-r--r-- | llvm/utils/benchmark/src/internal_macros.h | 11 |
3 files changed, 20 insertions, 15 deletions
diff --git a/llvm/utils/benchmark/README.LLVM b/llvm/utils/benchmark/README.LLVM index 49e47327a97..1b6f62d61e4 100644 --- a/llvm/utils/benchmark/README.LLVM +++ b/llvm/utils/benchmark/README.LLVM @@ -1,9 +1,13 @@ LLVM notes ---------- -This directory contains the Google Benchmark source code. This directory is -under a different license than LLVM. +This directory contains the Google Benchmark source code. Currently, the checked +Benchmark library version is v1.4.1. + +This directory is under a different license than LLVM. Changes: * Bazel BUILD files are removed from the library +* https://github.com/google/benchmark/commit/f85304e4e3a0e4e1bf15b91720df4a19e90b589f + is applied on top of the v1.4.1 to silence compiler warnings diff --git a/llvm/utils/benchmark/include/benchmark/benchmark.h b/llvm/utils/benchmark/include/benchmark/benchmark.h index 23dd3d09b1f..af935a6ef3e 100644 --- a/llvm/utils/benchmark/include/benchmark/benchmark.h +++ b/llvm/utils/benchmark/include/benchmark/benchmark.h @@ -240,6 +240,18 @@ BENCHMARK(BM_test)->Unit(benchmark::kMillisecond); #define BENCHMARK_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) #endif +#ifndef __has_builtin +#define __has_builtin(x) 0 +#endif + +#if defined(__GNUC__) || __has_builtin(__builtin_unreachable) + #define BENCHMARK_UNREACHABLE() __builtin_unreachable() +#elif defined(_MSC_VER) + #define BENCHMARK_UNREACHABLE() __assume(false) +#else + #define BENCHMARK_UNREACHABLE() ((void)0) +#endif + namespace benchmark { class BenchmarkReporter; @@ -1434,9 +1446,9 @@ inline const char* GetTimeUnitString(TimeUnit unit) { case kMicrosecond: return "us"; case kNanosecond: - default: return "ns"; } + BENCHMARK_UNREACHABLE(); } inline double GetTimeUnitMultiplier(TimeUnit unit) { @@ -1446,9 +1458,9 @@ inline double GetTimeUnitMultiplier(TimeUnit unit) { case kMicrosecond: return 1e6; case kNanosecond: - default: return 1e9; } + BENCHMARK_UNREACHABLE(); } } // namespace benchmark diff --git a/llvm/utils/benchmark/src/internal_macros.h b/llvm/utils/benchmark/src/internal_macros.h index edb8a5c0a35..3c1cda39c2f 100644 --- a/llvm/utils/benchmark/src/internal_macros.h +++ b/llvm/utils/benchmark/src/internal_macros.h @@ -6,9 +6,6 @@ #ifndef __has_feature #define __has_feature(x) 0 #endif -#ifndef __has_builtin -#define __has_builtin(x) 0 -#endif #if defined(__clang__) #if !defined(COMPILER_CLANG) @@ -78,12 +75,4 @@ #define BENCHMARK_MAYBE_UNUSED #endif -#if defined(COMPILER_GCC) || __has_builtin(__builtin_unreachable) - #define BENCHMARK_UNREACHABLE() __builtin_unreachable() -#elif defined(COMPILER_MSVC) - #define BENCHMARK_UNREACHABLE() __assume(false) -#else - #define BENCHMARK_UNREACHABLE() ((void)0) -#endif - #endif // BENCHMARK_INTERNAL_MACROS_H_ |