Hi,
I have noticed that, when I link my code statically, valgrind complains
about every exception that is caught. In the example code below, the
error is:
==32195== Conditional jump or move depends on uninitialised value(s)
==32195== at 0x44B8A4: __cxa_begin_catch (in
/home/bredelings/Devel/Sampler/Runs/test)
==32195== by 0x400361: main (in
/home/bredelings/Devel/Sampler/Runs/test)
If I link my code dynamically, this does not happen.
Question: Is this a real problem? Or, is it safe to ignore this warning?
--------------Example code (test.C) ----------------
#include <iostream>
int main(int argc, char* argv[])
{
std::cout<<"argc = "<<argc<<"\n";
try {
if (argc > 3) {
throw int(2);
}
}
catch (int i) {
std::cout<<"caught exception = "<<i<<"\n";
}
exit(0);
}
---------------------Example code---------------------
Kernel: AMD64 Linux 2.6.24 (Debian unstable)
GLibc: 2.7
GCC: 4.1, 4.2 and 4.3
4.0 does not have this problem.
compilation command:
% gcc test.C -o test -static
execution command:
% ./test 1 2 3 4 5
thanks!
-BenRI