> >> FAIL: g++.dg/tls/thread_local3.C -std=gnu++11 execution test > >> FAIL: g++.dg/tls/thread_local4.C -std=gnu++11 execution test > > These ought to work. Can you debug the problem?
Backtrace for thread_local4.C Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x1503 of process 36991] 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () #1 0x0000000100005424 in __mini_vector<std::pair<__gnu_cxx::bitmap_allocator<wchar_t>::_Alloc_block*, __gnu_cxx::bitmap_allocator<wchar_t>::_Alloc_block*> >::insert (this=<value optimized out>, __pos=<value optimized out>, __x=<value optimized out>) at /opt/gcc/p_build/x86_64-apple-darwin10.8.0/libstdc++-v3/include/ext/bitmap_allocator.h:158 #2 0x0000000000000001 in ?? () #3 0x0000000100381000 in ?? () #4 0x0000000100000cea in f () at /opt/gcc/work/gcc/testsuite/g++.dg/tls/thread_local4.C:23 #5 0x0000000100380ed0 in ?? () #6 0x00007fff8297e39c in _pthread_exit () from /usr/lib/libSystem.B.dylib Backtrace stopped: previous frame inner to this frame (corrupt stack?) valgrind gives --36994:0:schedule VG_(sema_down): read returned -4 ==36994== Thread 2: ==36994== Invalid read of size 4 ==36994== at 0x100021400: (anonymous namespace)::list::run() (in /opt/gcc/gcc4.8p-192219/lib/libstdc++.6.dylib) ==36994== by 0xFF: ??? ==36994== by 0x100: ??? ==36994== by 0x10084DD9F: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== Address 0x1003cd2e0 is 16 bytes inside a block of size 536 free'd ==36994== at 0x10001252D: free (vg_replace_malloc.c:430) ==36994== by 0x1003B5CB2: emutls_destroy (in /opt/gcc/gcc4.8p-192219/lib/libgcc_s.1.dylib) ==36994== by 0xFF: ??? ==36994== by 0x10084DD9F: ??? ==36994== by 0x10084DFFF: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== ==36994== Invalid read of size 8 ==36994== at 0x10002141D: (anonymous namespace)::list::run() (in /opt/gcc/gcc4.8p-192219/lib/libstdc++.6.dylib) ==36994== by 0xFF: ??? ==36994== by 0x100: ??? ==36994== by 0x10084DD9F: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== Address 0x1003cd2e8 is 24 bytes inside a block of size 536 free'd ==36994== at 0x10001252D: free (vg_replace_malloc.c:430) ==36994== by 0x1003B5CB2: emutls_destroy (in /opt/gcc/gcc4.8p-192219/lib/libgcc_s.1.dylib) ==36994== by 0xFF: ??? ==36994== by 0x10084DD9F: ??? ==36994== by 0x10084DFFF: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== ==36994== Invalid read of size 8 ==36994== at 0x100021421: (anonymous namespace)::list::run() (in /opt/gcc/gcc4.8p-192219/lib/libstdc++.6.dylib) ==36994== by 0xFF: ??? ==36994== by 0x100: ??? ==36994== by 0x10084DD9F: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== Address 0x1003cd2f0 is 32 bytes inside a block of size 536 free'd ==36994== at 0x10001252D: free (vg_replace_malloc.c:430) ==36994== by 0x1003B5CB2: emutls_destroy (in /opt/gcc/gcc4.8p-192219/lib/libgcc_s.1.dylib) ==36994== by 0xFF: ??? ==36994== by 0x10084DD9F: ??? ==36994== by 0x10084DFFF: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== ==36994== Invalid read of size 8 ==36994== at 0x100021429: (anonymous namespace)::list::run() (in /opt/gcc/gcc4.8p-192219/lib/libstdc++.6.dylib) ==36994== by 0xFF: ??? ==36994== by 0x100: ??? ==36994== by 0x10084DD9F: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== Address 0x1003cd2d8 is 8 bytes inside a block of size 536 free'd ==36994== at 0x10001252D: free (vg_replace_malloc.c:430) ==36994== by 0x1003B5CB2: emutls_destroy (in /opt/gcc/gcc4.8p-192219/lib/libgcc_s.1.dylib) ==36994== by 0xFF: ??? ==36994== by 0x10084DD9F: ??? ==36994== by 0x10084DFFF: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== --36994:0:schedule VG_(sema_down): read returned -4 ==36994== Invalid read of size 4 ==36994== at 0x100021400: (anonymous namespace)::list::run() (in /opt/gcc/gcc4.8p-192219/lib/libstdc++.6.dylib) ==36994== by 0xFF: ??? ==36994== by 0x100: ??? ==36994== by 0x1008CED9F: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== Address 0x1003cd800 is 16 bytes inside a block of size 536 free'd ==36994== at 0x10001252D: free (vg_replace_malloc.c:430) ==36994== by 0x1003B5CB2: emutls_destroy (in /opt/gcc/gcc4.8p-192219/lib/libgcc_s.1.dylib) ==36994== by 0xFF: ??? ==36994== by 0x1008CED9F: ??? ==36994== by 0x1008CEFFF: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== ==36994== Invalid read of size 8 ==36994== at 0x10002141D: (anonymous namespace)::list::run() (in /opt/gcc/gcc4.8p-192219/lib/libstdc++.6.dylib) ==36994== by 0xFF: ??? ==36994== by 0x100: ??? ==36994== by 0x1008CED9F: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== Address 0x1003cd808 is 24 bytes inside a block of size 536 free'd ==36994== at 0x10001252D: free (vg_replace_malloc.c:430) ==36994== by 0x1003B5CB2: emutls_destroy (in /opt/gcc/gcc4.8p-192219/lib/libgcc_s.1.dylib) ==36994== by 0xFF: ??? ==36994== by 0x1008CED9F: ??? ==36994== by 0x1008CEFFF: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== ==36994== Invalid read of size 8 ==36994== at 0x100021421: (anonymous namespace)::list::run() (in /opt/gcc/gcc4.8p-192219/lib/libstdc++.6.dylib) ==36994== by 0xFF: ??? ==36994== by 0x100: ??? ==36994== by 0x1008CED9F: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== Address 0x1003cd810 is 32 bytes inside a block of size 536 free'd ==36994== at 0x10001252D: free (vg_replace_malloc.c:430) ==36994== by 0x1003B5CB2: emutls_destroy (in /opt/gcc/gcc4.8p-192219/lib/libgcc_s.1.dylib) ==36994== by 0xFF: ??? ==36994== by 0x1008CED9F: ??? ==36994== by 0x1008CEFFF: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== ==36994== Invalid read of size 8 ==36994== at 0x100021429: (anonymous namespace)::list::run() (in /opt/gcc/gcc4.8p-192219/lib/libstdc++.6.dylib) ==36994== by 0xFF: ??? ==36994== by 0x100: ??? ==36994== by 0x1008CED9F: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== Address 0x1003cd7f8 is 8 bytes inside a block of size 536 free'd ==36994== at 0x10001252D: free (vg_replace_malloc.c:430) ==36994== by 0x1003B5CB2: emutls_destroy (in /opt/gcc/gcc4.8p-192219/lib/libgcc_s.1.dylib) ==36994== by 0xFF: ??? ==36994== by 0x1008CED9F: ??? ==36994== by 0x1008CEFFF: ??? ==36994== by 0x10018C6E7: _pthread_tsd_cleanup (in /usr/lib/libSystem.B.dylib) ==36994== ==36994== ==36994== HEAP SUMMARY: ==36994== in use at exit: 976 bytes in 4 blocks ==36994== total heap usage: 14 allocs, 10 frees, 2,674 bytes allocated ==36994== ==36994== LEAK SUMMARY: ==36994== definitely lost: 0 bytes in 0 blocks ==36994== indirectly lost: 0 bytes in 0 blocks ==36994== possibly lost: 536 bytes in 1 blocks ==36994== still reachable: 352 bytes in 2 blocks ==36994== suppressed: 88 bytes in 1 blocks ==36994== Rerun with --leak-check=full to see details of leaked memory ==36994== ==36994== For counts of detected and suppressed errors, rerun with: -v ==36994== ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0) Dominique