------- Comment #8 from pluto at agmk dot net 2010-04-18 20:28 ------- debbuging 4.3 vs 4.5 start_thread() shows different results:
4.3: 182x void thread::start_thread() 183x { 184x thread_info->self=thread_info; 185t> int const res = pthread_create(&thread_info->thread_handle, 0, &thread_proxy, thread_info.get()); (gdb) p *this->thread_info.pn.pi_ { _vptr.sp_counted_base = 0x7ffff767e6d0, use_count_ = 1, weak_count_ = 2 } (gdb) n (gdb) p *this->thread_info.pn.pi_ { _vptr.sp_counted_base = 0x7ffff767e6d0, use_count_ = 2, weak_count_ = 2 } on 4.5: (gdb) p *this->thread_info.pn.pi_ { _vptr.sp_counted_base = 0x7ffff767ead0, use_count_ = 1, weak_count_ = 2 } (gdb) n (gdb) p *this->thread_info.pn.pi_ Cannot access memory at address 0x30 as you can see, the 4.5 code does bad things. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39979