This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: C++ PATCH to support dynamic initialization and destruction of C++11 and OpenMP TLS variables


> >> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]