Closed hansenjo closed 3 years ago
This is probably a false positive. See comments at TObject.cxx:84 where it is observed that Valgrind reports uninitialized memory for objects created on the stack. Indeed, the matrix AA
and the vector TT
that are being multiplied at THcDC.cxx:1011 are both stack objects. While the ROOT suppressions file squelches the report for the TObject copy constructor, it does not apparently do so for the TObject::operator=.
Seems like this issue should be closed.
https://github.com/JeffersonLab/hcana/blob/b20e8b9b73ac698c053aa60e8702a1311f81fd83/src/THcDC.cxx#L1011
Valgrind reports that some operations in the above line refer to uninitialized memory and hence will likely produce garbage results. It might the matrix
AA
or the vectorTT
, which may not even be uninitialized per se, but be initialized with values which come from function calls that retrieve uninitialized data. It's not obvious, and I haven't been able to track this down yet. It is unlikely to be false positive though, based on my experience with valgrind.Partial output of replaying 10000 events (note: 2.8 such errors per event):