[DateTime] valgrind warns on uninitialized jump

[from strings_from_facet.hpp, line 52] for (int m=0; m < 12; m++) { tm tm_value; tm_value.tm_mon = m; stringstream_type ss; ostream_iter_type oitr(ss); std::use_facet<time_put_facet_type>(locale).put(oitr, ss, ss.fill(), &tm_value, &*outfmt.begin(), &*outfmt.begin()+outfmt.size()); months.push_back(ss.str()); } valgrind (3.5.0, run on Linux, gcc 4.1.2, libstdc++ 6.0.8) reports: ==13166== 1 errors in context 1 of 1: ==13166== Conditional jump or move depends on uninitialised value(s) ==13166== at 0x41D793D: strftime_l (in /lib/libc-2.4.so) ==13166== by 0x40EE600: std::__timepunct<char>::_M_put(char*, unsigned int, char const*, tm const*) const (in /usr/lib/libstdc++.so.6.0.8) ==13166== by 0x40AC9DA: std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> >
::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, tm const*, char, char) const (in /usr/lib/libstdc++.so.6.0.8) ==13166== by 0x40AAD95: std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > ::put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, tm const*, char const*, char const*) const (in /usr/lib/libstdc++.so.6.0.8)
The "error" goes away when tm_value.tm_hour is initialized to 0. (No idea why. Might be a bug in libstdc++) Best regards
participants (1)
-
Christoph Duelli