fixed non-const reference arguments
diff --git a/include/benchmark/reporter.h b/include/benchmark/reporter.h
index 3bf45d8..564219a 100644
--- a/include/benchmark/reporter.h
+++ b/include/benchmark/reporter.h
@@ -52,7 +52,7 @@
       complexity(O_None),
       arg1(0), 
       arg2(0),
-      report_bigO(false),
+      report_big_o(false),
       report_rms(false) {}
 
     std::string benchmark_name;
@@ -75,7 +75,7 @@
     int    arg2;
     
     // Inform print function whether the current run is a complexity report
-    bool report_bigO;
+    bool report_big_o;
     bool report_rms;
   };
 
@@ -105,8 +105,8 @@
 
   virtual ~BenchmarkReporter();
 protected:
-  static void ComputeStats(const std::vector<Run> & reports, Run& mean, Run& stddev);
-  static void ComputeBigO(const std::vector<Run> & reports, Run& bigO, Run& rms);
+  static void ComputeStats(const std::vector<Run> & reports, Run* mean, Run* stddev);
+  static void ComputeBigO(const std::vector<Run> & reports, Run* bigO, Run* rms);
   static TimeUnitMultiplier GetTimeUnitAndMultiplier(TimeUnit unit);
   static std::string GetBigO(BigO complexity);
 };
diff --git a/src/console_reporter.cc b/src/console_reporter.cc
index b0b4130..09b91c2 100644
--- a/src/console_reporter.cc
+++ b/src/console_reporter.cc
@@ -72,7 +72,7 @@
 
   Run mean_data;
   Run stddev_data;
-  BenchmarkReporter::ComputeStats(reports, mean_data, stddev_data);
+  BenchmarkReporter::ComputeStats(reports, &mean_data, &stddev_data);
 
   // Output using PrintRun.
   PrintRunData(mean_data);
@@ -85,12 +85,12 @@
     return;
   }
   
-  Run bigO_data;
+  Run big_o_data;
   Run rms_data;
-  BenchmarkReporter::ComputeBigO(complexity_reports, bigO_data, rms_data);
+  BenchmarkReporter::ComputeBigO(complexity_reports, &big_o_data, &rms_data);
     
   // Output using PrintRun.
-  PrintRunData(bigO_data);
+  PrintRunData(big_o_data);
   PrintRunData(rms_data);
 }
 
@@ -115,8 +115,8 @@
   ColorPrintf(COLOR_GREEN, "%-*s ",
               name_field_width_, result.benchmark_name.c_str());
 
-  if(result.report_bigO) {
-    std::string big_o = result.report_bigO ? GetBigO(result.complexity) : "";
+  if(result.report_big_o) {
+    std::string big_o = result.report_big_o ? GetBigO(result.complexity) : "";
     ColorPrintf(COLOR_YELLOW, "%10.4f %s %10.4f %s ",
                 result.real_accumulated_time * multiplier,
                 big_o.c_str(),
diff --git a/src/csv_reporter.cc b/src/csv_reporter.cc
index f13a5f8..031736e 100644
--- a/src/csv_reporter.cc
+++ b/src/csv_reporter.cc
@@ -57,7 +57,7 @@
   if (reports.size() >= 2) {
     Run mean_data;
     Run stddev_data;
-    BenchmarkReporter::ComputeStats(reports, mean_data, stddev_data);
+    BenchmarkReporter::ComputeStats(reports, &mean_data, &stddev_data);
     reports_cp.push_back(mean_data);
     reports_cp.push_back(stddev_data);
   }
@@ -74,7 +74,7 @@
   
   Run bigO_data;
   Run rms_data;
-  BenchmarkReporter::ComputeBigO(complexity_reports, bigO_data, rms_data);
+  BenchmarkReporter::ComputeBigO(complexity_reports, &bigO_data, &rms_data);
   
   // Output using PrintRun.
   PrintRunData(bigO_data);
diff --git a/src/json_reporter.cc b/src/json_reporter.cc
index 4874fe7..c15fb10 100644
--- a/src/json_reporter.cc
+++ b/src/json_reporter.cc
@@ -100,7 +100,7 @@
   if (reports.size() >= 2) {
     Run mean_data;
     Run stddev_data;
-    BenchmarkReporter::ComputeStats(reports, mean_data, stddev_data);
+    BenchmarkReporter::ComputeStats(reports, &mean_data, &stddev_data);
     reports_cp.push_back(mean_data);
     reports_cp.push_back(stddev_data);
   }
@@ -129,7 +129,7 @@
   
   Run bigO_data;
   Run rms_data;
-  BenchmarkReporter::ComputeBigO(complexity_reports, bigO_data, rms_data);
+  BenchmarkReporter::ComputeBigO(complexity_reports, &bigO_data, &rms_data);
   
   // Output using PrintRun.
   out << indent << "{\n";
diff --git a/src/reporter.cc b/src/reporter.cc
index 61a6d5c..27dca85 100644
--- a/src/reporter.cc
+++ b/src/reporter.cc
@@ -26,7 +26,7 @@
 
 void BenchmarkReporter::ComputeStats(
     const std::vector<Run>& reports,
-    Run& mean_data, Run& stddev_data) {
+    Run* mean_data, Run* stddev_data) {
   CHECK(reports.size() >= 2) << "Cannot compute stats for less than 2 reports";
   // Accumulators.
   Stat1_d real_accumulated_time_stat;
@@ -50,38 +50,38 @@
   }
 
   // Get the data from the accumulator to BenchmarkReporter::Run's.
-  mean_data.benchmark_name = reports[0].benchmark_name + "_mean";
-  mean_data.iterations = run_iterations;
-  mean_data.real_accumulated_time = real_accumulated_time_stat.Mean() *
+  mean_data->benchmark_name = reports[0].benchmark_name + "_mean";
+  mean_data->iterations = run_iterations;
+  mean_data->real_accumulated_time = real_accumulated_time_stat.Mean() *
                                      run_iterations;
-  mean_data.cpu_accumulated_time = cpu_accumulated_time_stat.Mean() *
+  mean_data->cpu_accumulated_time = cpu_accumulated_time_stat.Mean() *
                                     run_iterations;
-  mean_data.bytes_per_second = bytes_per_second_stat.Mean();
-  mean_data.items_per_second = items_per_second_stat.Mean();
+  mean_data->bytes_per_second = bytes_per_second_stat.Mean();
+  mean_data->items_per_second = items_per_second_stat.Mean();
 
   // Only add label to mean/stddev if it is same for all runs
-  mean_data.report_label = reports[0].report_label;
+  mean_data->report_label = reports[0].report_label;
   for (std::size_t i = 1; i < reports.size(); i++) {
     if (reports[i].report_label != reports[0].report_label) {
-      mean_data.report_label = "";
+      mean_data->report_label = "";
       break;
     }
   }
 
-  stddev_data.benchmark_name = reports[0].benchmark_name + "_stddev";
-  stddev_data.report_label = mean_data.report_label;
-  stddev_data.iterations = 0;
-  stddev_data.real_accumulated_time =
+  stddev_data->benchmark_name = reports[0].benchmark_name + "_stddev";
+  stddev_data->report_label = mean_data->report_label;
+  stddev_data->iterations = 0;
+  stddev_data->real_accumulated_time =
       real_accumulated_time_stat.StdDev();
-  stddev_data.cpu_accumulated_time =
+  stddev_data->cpu_accumulated_time =
       cpu_accumulated_time_stat.StdDev();
-  stddev_data.bytes_per_second = bytes_per_second_stat.StdDev();
-  stddev_data.items_per_second = items_per_second_stat.StdDev();
+  stddev_data->bytes_per_second = bytes_per_second_stat.StdDev();
+  stddev_data->items_per_second = items_per_second_stat.StdDev();
 }
 
 void BenchmarkReporter::ComputeBigO(
     const std::vector<Run>& reports,
-    Run& bigO, Run& rms) {
+    Run* big_o, Run* rms) {
   CHECK(reports.size() >= 2) << "Cannot compute asymptotic complexity for less than 2 reports";
   // Accumulators.
   std::vector<int> N;
@@ -106,26 +106,26 @@
   std::string benchmark_name = reports[0].benchmark_name.substr(0, reports[0].benchmark_name.find('/'));
   
   // Get the data from the accumulator to BenchmarkReporter::Run's.
-  bigO.benchmark_name = benchmark_name + "_BigO";
-  bigO.iterations = 0;
-  bigO.real_accumulated_time = resultReal.coef;
-  bigO.cpu_accumulated_time = resultCpu.coef;
-  bigO.report_bigO = true;
-  bigO.complexity = resultCpu.complexity;
+  big_o->benchmark_name = benchmark_name + "_BigO";
+  big_o->iterations = 0;
+  big_o->real_accumulated_time = resultReal.coef;
+  big_o->cpu_accumulated_time = resultCpu.coef;
+  big_o->report_big_o = true;
+  big_o->complexity = resultCpu.complexity;
 
   double multiplier;
   const char* timeLabel;
   std::tie(timeLabel, multiplier) = GetTimeUnitAndMultiplier(reports[0].time_unit);
 
   // Only add label to mean/stddev if it is same for all runs
-  bigO.report_label = reports[0].report_label;
-  rms.benchmark_name = benchmark_name + "_RMS";
-  rms.report_label = bigO.report_label;
-  rms.iterations = 0;
-  rms.real_accumulated_time = resultReal.rms / multiplier;
-  rms.cpu_accumulated_time = resultCpu.rms / multiplier;
-  rms.report_rms = true;
-  rms.complexity = resultCpu.complexity;
+  big_o->report_label = reports[0].report_label;
+  rms->benchmark_name = benchmark_name + "_RMS";
+  rms->report_label = big_o->report_label;
+  rms->iterations = 0;
+  rms->real_accumulated_time = resultReal.rms / multiplier;
+  rms->cpu_accumulated_time = resultCpu.rms / multiplier;
+  rms->report_rms = true;
+  rms->complexity = resultCpu.complexity;
 }
 
 std::string BenchmarkReporter::GetBigO(BigO complexity) {