使用boost :: unordered_set

时间:2015-10-26 18:42:01

标签: c++ boost

我有这个简单的代码:

#include <boost/unordered_set.hpp>

int main (int argc, char* argv[])
{
    boost::unordered_set<int> bset;
    for (int i=0; i<10000; i++) {
        bset.insert(i);
    }
    return 0;
}

当我创建purify构建并运行时,我收到以下UMR(未初始化的内存读取)错误。我无法弄清楚如何摆脱这个。

  

****净化已检测的app_pure(pid 21943)****

     

UMR:未初始化的内存读取(10000次):

     
      
  • 在线程21943中发生这种情况:

         

    std :: pair&gt ;, bool&gt; boost :: unordered :: detail :: table_impl,int,boost :: hash,std :: equal_to&gt;&gt; :: emplace_impl&gt;(int const&amp;,boost :: unordered :: detail :: set,int,boost: :hash,std :: equal_to&gt; const&amp;)[unique.hpp:414]   std :: pair&gt ;, bool&gt; boost :: unordered :: detail :: table_impl,int,boost :: hash,std :: equal_to&gt;&gt; :: emplace(boost :: unordered :: detail :: emplace_args1,int,boost :: hash,std: :equal_to&gt;&gt; const&amp;)[unique.hpp:393]   std :: pair,boost :: unordered :: detail :: ptr_node const *&gt ;, bool&gt; boost :: unordered :: unordered_set,std :: equal_to,std :: allocator&gt; :: emplace(int const&amp;)[unordered_set.hpp:277]   boost :: unordered :: unordered_set,std :: equal_to,std :: allocator&gt; :: insert(int const&amp;)[unordered_set.hpp:380]

         

    main [app.cxx:8]

         

    __ libc_start_main [libc.so.6]

         

    _start [crt1.o]

         
        
    • 在线程21943的堆栈上从0x7fffffffd668读取8个字节(7个字节,位于0x7fffffffd669 uninit)。
    •   
    • 地址0x7fffffffd668是函数std :: pair&gt;中的局部变量“pos”的开始56字节,bool&gt; boost :: unordered :: detail :: table_impl,int,boost :: hash,std :: equal_to&gt;&gt; :: emplace_impl&gt;(int const&amp;,boost :: unordered :: detail :: set,int,boost: :hash,std :: equal_to&gt; const&amp;)。
    •   
  •   

我的提升版本是1.54.0

我的GCC版本是4.8.3

净化版本为7.3(净化7.3-mod1 150930 Linux(64位))

任何人都可以提供一些如何解决这个问题的提示吗?

由于

0 个答案:

没有答案