Skip to content

Commit

Permalink
[benchmark] Silence warning by applying upstream patch
Browse files Browse the repository at this point in the history
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:
google/benchmark@f85304e

`README.LLVM` notes were updated to reflect the latest changes.

Reviewed by: lebedev.ri

Differential Revision: https://reviews.llvm.org/D51342

llvm-svn: 340811
  • Loading branch information
kirillbobyrev committed Aug 28, 2018
1 parent f119e27 commit 6a5c01c
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 15 deletions.
8 changes: 6 additions & 2 deletions 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
16 changes: 14 additions & 2 deletions llvm/utils/benchmark/include/benchmark/benchmark.h
Expand Up @@ -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;

Expand Down Expand Up @@ -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) {
Expand All @@ -1446,9 +1458,9 @@ inline double GetTimeUnitMultiplier(TimeUnit unit) {
case kMicrosecond:
return 1e6;
case kNanosecond:
default:
return 1e9;
}
BENCHMARK_UNREACHABLE();
}

} // namespace benchmark
Expand Down
11 changes: 0 additions & 11 deletions llvm/utils/benchmark/src/internal_macros.h
Expand Up @@ -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)
Expand Down Expand Up @@ -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_

0 comments on commit 6a5c01c

Please sign in to comment.