diff --git a/Control/PerformanceMonitoring/PerfMonComps/src/SemiDetHelper.cxx b/Control/PerformanceMonitoring/PerfMonComps/src/SemiDetHelper.cxx
index 78f9add6af63abe3998044394c96119f7558a6b8..6c554fe5579e666152a7d39e0e13202257e332ac 100644
--- a/Control/PerformanceMonitoring/PerfMonComps/src/SemiDetHelper.cxx
+++ b/Control/PerformanceMonitoring/PerfMonComps/src/SemiDetHelper.cxx
@@ -65,7 +65,7 @@ PMonSD::SemiDetHelper::SemiDetHelper(const std::string& jobStartJiffies)
   m_data_std_lastlookup=m_data_std.end();
   m_data_other_lastlookup=m_data_other.end();
   //Small test that our malloc collection actually works on this platform and with this allocator:
-  double m0=get_malloc_kb(); char * c = new char[1024]; double m1=get_malloc_kb(); delete[] c;
+  double m0=get_malloc_kb(); char *volatile  c = new char[1024]; double m1=get_malloc_kb(); delete[] c;
   if (m0==m1) {
     m_malloc_status="noinfo";
     m_meas.disableMalloc();