fix (potential) floating point exceptions
authortbreitne <timo.gunther.breitner@cern.ch>
Tue, 21 Oct 2014 07:41:30 +0000 (09:41 +0200)
committertbreitne <timo.gunther.breitner@cern.ch>
Tue, 21 Oct 2014 07:54:20 +0000 (09:54 +0200)
When reading HLT clusters during TPC reconstruction, some clusters end up
with non-sense values rendering them unusable, and, worst-case, lead to a
FPE. This is assumingly caused by a gcc bug when inlining
AliHLTTPCHWClusterMerger::iterator::operator*()
and hence affects all merged clusters. This can be prevented by forcing gcc
not to inline (e.g. attribute noinline), by using clang, or by this very patch.

HLT/TPCLib/HWCFemulator/AliHLTTPCHWClusterMerger.h

index 1b525b3..b2eceef 100644 (file)
@@ -183,7 +183,7 @@ class AliHLTTPCHWClusterMerger : public AliHLTLogging
     }
     ~iterator() {}
 
-    AliClusterRecord operator*() {return *fIter;}
+    AliClusterRecord& operator*() {return *fIter;}
 
     // prefix operators
     iterator& operator++() {