------- Additional Comments From matz at suse dot de  2004-10-13 18:28 -------
Still doesn't fully work.  The initial testcase now works, but aRts still 
segfaults.  This time I need this testcase: 
------------------------------------- 
#include <string> 
std::string idl_filename; 
extern std::string idl_filename; 
int main() 
{ 
        idl_filename = "bla"; 
        return 0; 
} 
------------------------------------- 
 
This has to be compiled with -pthread, then it segfaults for me.  Note that 
the "extern" line is important, including it's place (after the definition). 
 
% g++ -g -pthread mcopidl.cc 
% ./a.out 
Segmentation fault 
% valgrind -q --num-callers=42 --tool=memcheck ./a.out 
==7097== Invalid read of size 4 
==7097==    at 0x1B94C2CB: __gnu_cxx::__pool<true>::_M_reclaim_block(char*, 
unsigned) (in /usr/lib/libstdc++.so.6.0.3) 
==7097==    by 0x1B94CD13: __gnu_cxx::__mt_alloc<char, 
__gnu_cxx::__common_pool_policy<true> >::deallocate(char*, unsigned) 
(in /usr/lib/libstdc++.so.6.0.3) 
==7097==    by 0x1B9945A2: std::string::_Rep::_M_destroy(std::allocator<char> 
const&) (in /usr/lib/libstdc++.so.6.0.3) 
==7097==    by 0x1B995A1C: std::string::~string() 
(in /usr/lib/libstdc++.so.6.0.3) 
==7097==    by 0x804866A: __tcf_1 (mcopidl.cc:3) 
==7097==    by 0x1BA697EF: exit (in /lib/tls/libc.so.6) 
==7097==    by 0x1BA54AE9: __libc_start_main (in /lib/tls/libc.so.6) 
==7097==    by 0x8048580: ??? (start.S:119) 
==7097==  Address 0x8AA04420 is not stack'd, malloc'd or (recently) free'd 
Segmentation fault 
 
Note that it works either without the "extern" line or that one before the 
definition, or when compiling without -pthread (but KDE is compiled with 
that). 
 
It seems I can't reopen this bug report, so if someone else could ... 

-- 


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

Reply via email to