我use-of-uninitialized-value在执行以下编译的程序时收到警告clang++-9 -fsanitize=memory:
#include <map>
class msan_test
{
std::map<int, int> m_map;
public:
msan_test()
{
m_map.insert(std::make_pair(1, 1));
m_map.insert(std::make_pair(2, 2));
}
};
msan_test gobj; // global object of above class
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的警告:
==16598==WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0x49898f in std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_get_insert_unique_pos(int const&) (/home/noname/a.out+0x49898f)
#1 0x49828e in std::pair<std::_Rb_tree_iterator<std::pair<int const, int> >, bool> std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> …Run Code Online (Sandbox Code Playgroud)