diff --git a/Makefile b/Makefile
index f2473f3518fb2b97c1c014412b96bf65e1af02bb..fc742bc785d06fcc5c3413ebab1ba66874548c90 100644
--- a/Makefile
+++ b/Makefile
@@ -3199,6 +3199,7 @@ endif
 
 
 LIBGRPC++_BENCHMARK_CONFIG_SRC = \
+    $(GENDIR)/test/cpp/qps/qpstest.pb.cc $(GENDIR)/test/cpp/qps/qpstest.grpc.pb.cc \
     test/cpp/qps/report.cc \
     test/cpp/util/benchmark_config.cc \
 
@@ -3244,6 +3245,8 @@ ifneq ($(NO_DEPS),true)
 -include $(LIBGRPC++_BENCHMARK_CONFIG_OBJS:.o=.dep)
 endif
 endif
+$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/test/cpp/qps/qpstest.pb.cc $(GENDIR)/test/cpp/qps/qpstest.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/test/cpp/qps/qpstest.pb.cc $(GENDIR)/test/cpp/qps/qpstest.grpc.pb.cc
 
 
 LIBGRPC++_TEST_CONFIG_SRC = \
diff --git a/build.json b/build.json
index a3595f1357cdf5d8c827e637b3a3f8e841dc24e2..4e6accd0203cdf7b9aef48905e3f9789e4c7735c 100644
--- a/build.json
+++ b/build.json
@@ -530,6 +530,7 @@
       "build": "private",
       "language": "c++",
       "src": [
+        "test/cpp/qps/qpstest.proto",
         "test/cpp/qps/report.cc",
         "test/cpp/util/benchmark_config.cc"
       ]
diff --git a/test/cpp/qps/report.h b/test/cpp/qps/report.h
index 3712f67a47bd6d0728ff6650704ce75da2664f79..630275ecda23660415cbaa7f47c71671352c0dba 100644
--- a/test/cpp/qps/report.h
+++ b/test/cpp/qps/report.h
@@ -63,7 +63,7 @@ class Reporter {
 
   /** Reports QPS per core as (YYY/server core). */
   virtual void ReportQPSPerCore(const ScenarioResult& result,
-                        const ServerConfig& config) const = 0;
+                                const ServerConfig& config) const = 0;
 
   /** Reports latencies for the 50, 90, 95, 99 and 99.9 percentiles, in ms. */
   virtual void ReportLatency(const ScenarioResult& result) const = 0;
diff --git a/test/cpp/util/benchmark_config.cc b/test/cpp/util/benchmark_config.cc
index 1b15ddcbcc8ce958dd8b8239454a356381fb238a..5b3c1daf5db50f2ee3f653b30f00aed4701de6c7 100644
--- a/test/cpp/util/benchmark_config.cc
+++ b/test/cpp/util/benchmark_config.cc
@@ -60,7 +60,7 @@ static std::shared_ptr<Reporter> InitBenchmarkReporters() {
   return std::shared_ptr<Reporter>(composite_reporter);
 }
 
-const std::shared_ptr<Reporter>& GetReporter() {
+std::shared_ptr<Reporter> GetReporter() {
   static std::shared_ptr<Reporter> reporter(InitBenchmarkReporters());
   return reporter;
 }
diff --git a/test/cpp/util/benchmark_config.h b/test/cpp/util/benchmark_config.h
index 3a3a6d61ae65c8a24ed83f8d4a45cfe7d93fc4cb..9e98dc3550f2e492033ad406350bafa6ecef0be8 100644
--- a/test/cpp/util/benchmark_config.h
+++ b/test/cpp/util/benchmark_config.h
@@ -49,7 +49,7 @@ void InitBenchmark(int* argc, char*** argv, bool remove_flags);
  * The returned instane will take care of generating reports for all the actual
  * reporters configured via the "enable_*_reporter" command line flags (see
  * benchmark_config.cc). */
-const std::shared_ptr<Reporter>& GetReporter();
+std::shared_ptr<Reporter> GetReporter();
 
 }  // namespace testing
 }  // namespace grpc