http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47354
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to work| |4.1.2 Summary|bitmap_allocator |[4.3/4.4/4.5/4.6 |free_list::_M_get never |Regression] |locks mutex |bitmap_allocator | |free_list::_M_get never | |locks mutex --- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-01-19 01:48:54 UTC --- this is a regression in all active branches rather than modifying the source to use an error-checking mutex, valgrind's drd tool can be used to show it was ok in 4.1 and is wrong in gcc 4.2+ ==6026== drd, a thread error detector ==6026== Copyright (C) 2006-2010, and GNU GPL'd, by Bart Van Assche. ==6026== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info ==6026== Command: ./a.out ==6026== ==6026== The object at address 0x4f0f780 is not a mutex. ==6026== at 0x4A11932: pthread_mutex_unlock (drd_pthread_intercepts.c:640) ==6026== by 0x4C6F8BD: __gnu_cxx::free_list::_M_get(unsigned long) (gthr-default.h:790) ==6026== by 0x4021E0: __gnu_cxx::bitmap_allocator<int>::_S_refill_pool() (in /dev/shm/a.out) ==6026== by 0x401A38: __gnu_cxx::bitmap_allocator<int>::_M_allocate_single_object() (in /dev/shm/a.out) ==6026== by 0x40178E: __gnu_cxx::bitmap_allocator<int>::allocate(unsigned long) (in /dev/shm/a.out) ==6026== by 0x400CDD: main (in /dev/shm/a.out)