[Bug other/39979] possible wrong code at all -0x levels.

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Apr 18 20:32:00 GMT 2010



------- Comment #9 from rguenth at gcc dot gnu dot org  2010-04-18 20:32 -------
(In reply to comment #8)
> 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.

it just means that the debugger uses a this variable which is currently NULL.
So maybe wrong-debug information.

The testcase is btw a too twisted maze.  Can you wrap up a simple main()
so that it fails at runtime?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39979



More information about the Gcc-bugs mailing list