is still producing some valgrind “possibly lost” warnings :
valgrind test 2> valgrind.out.txt
I have put the complete valgrind.out.txt in attachment. This is just the summary :
==9167== LEAK SUMMARY:
==9167== definitely lost: 0 bytes in 0 blocks
==9167== indirectly lost: 0 bytes in 0 blocks
==9167== possibly lost: 283,453 bytes in 3,322 blocks
==9167== still reachable: 27,293,910 bytes in 53,688 blocks
==9167== suppressed: 38,438 bytes in 550 blocks
==9167== Reachable blocks (those to which a pointer was found) are not shown.
==9167== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==9167==
==9167== For counts of detected and suppressed errors, rerun with: -v
==9167== Use --track-origins=yes to see where uninitialised values come from
==9167== ERROR SUMMARY: 306 errors from 272 contexts (suppressed: 654 from 163)
My valgrind suppression files are :
$ROOTINSTALLATIONDIR/etc/root/valgrind-root.supp
$ROOTINSTALLATIONDIR/etc/valgrind-root-python.supp
$ROOTSOURCEDIR/interpreter/llvm/src/utils/valgrind/x86_64-pc-linux-gnu.supp
$ROOTSOURCEDIR/interpreter/llvm/src/utils/valgrind/i386-pc-linux-gnu.supp
$ROOTSOURCEDIR/interpreter/llvm/src/tools/clang/utils/valgrind/x86_64-pc-linux-gnu_gcc-4.3.3.supp
My system is :
Linux 3.16-2-amd64 #1 SMP Debian 3.16.3-2 (2014-09-20) x86_64 GNU/Linux
g++ (Debian 4.9.1-16) 4.9.1
ROOT commit a2e77b71981ad181cd3bbded3ca5022f674614f4 (Date: Tue Oct 7 11:25:17 2014 +0200)
I see that you have updated ./etc/valgrind-root.etc with this commit f3afd11c19aa616e193388e25c785682984e0d53
I did not know how to do it, and did not even know if it was a serious bug or something harmless.
Can you tell me if it is what I should obtain ?
My system is :
Linux 3.16-3-amd64 #1 SMP Debian 3.16.5-1 (2014-10-10) x86_64 GNU/Linux
g++ (Debian 4.9.1-19) 4.9.1
ROOT commit c2d1b3b7d4aa06e6b08923bcbe68105429dac716
definitely lost (with the suppressions file valgrind-root.supp) should be 0. It is for me.
I cannot reproduce the error in clang::ASTDeclReader::VisitFriendDecl() anymore. How did you build, which commit of ROOT do you use - still c2d1b3b7d4aa06e6b08923bcbe68105429dac716? I cannot even find that one… which branch is it supposed to be in?
I had yet another look at valgrind’s report on ASTReader::VisitFriendDecl() which is the only part that is still relevant in valgrind’s output. It’s only visible in optimized mode. I cannot see anything wrong with the code; the values and the code paths are correct. So I suspect that it’s a false positive in valgrind, possibly due to the value in question being 32bits wide.