[Bug libstdc++/22482] -fvisibility=hidden and stl - SEGV in __gnu_cxx::__pooltrue::_M_reclaim_block

2005-07-14 Thread caolanm at redhat dot com

--- Additional Comments From caolanm at redhat dot com  2005-07-14 11:42 
---
Created an attachment (id=9268)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9268action=view)
example to reproduce


-- 


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


[Bug libstdc++/22482] -fvisibility=hidden and stl - SEGV in __gnu_cxx::__pooltrue::_M_reclaim_block

2005-07-14 Thread caolanm at redhat dot com


-- 
   What|Removed |Added

 CC||jakub at gcc dot gnu dot org
Summary| -fvisibility=hidden and stl|-fvisibility=hidden and stl
   |- SEGV in  |- SEGV in
   |__gnu_cxx::__pooltrue::_M_|__gnu_cxx::__pooltrue::_M_
   |reclaim_block   |reclaim_block


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


[Bug libstdc++/22482] -fvisibility=hidden and stl - SEGV in __gnu_cxx::__pooltrue::_M_reclaim_block

2005-07-14 Thread pcarlini at suse dot de

--- Additional Comments From pcarlini at suse dot de  2005-07-14 13:16 
---
A couple of quick comments: in the report, you are not saying that your 
gcc-4.0.1
is *not* default configured (i.e., the default is the new-based allocator); also
-fvisibility is known to have *lots* of issues, irrespective of allocators 
(e.g.,
grep the mailing lists for some trenchant comments general considerations from
Roger Sayle).

-- 


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


[Bug libstdc++/22482] -fvisibility=hidden and stl - SEGV in __gnu_cxx::__pooltrue::_M_reclaim_block

2005-07-14 Thread jakub at redhat dot com

--- Additional Comments From jakub at redhat dot com  2005-07-14 15:24 
---
IMHO either we want to just force what must have default visibility to have
the default visibility (in mt_allocator.h case it is _S_get_pool), as in:
--- ext/mt_allocator.h  2005-05-20 03:36:29.0 +0200
+++ ext/mt_allocator.h  2005-07-14 17:17:49.0 +0200
@@ -413,7 +413,7 @@ namespace __gnu_cxx
 struct _M_rebind
 { typedef __common_pool_policy_PoolTp1, _Thread1 other; };

-  static pool_type
+  static __attribute__((visibility (default))) pool_type
   _S_get_pool()
   {
static pool_type _S_pool;
@@ -444,7 +444,7 @@ namespace __gnu_cxx
 struct _M_rebind
 { typedef __common_pool_policy_PoolTp1, _Thread1 other; };

-  static pool_type
+  static __attribute__((visibility (default))) pool_type
   _S_get_pool()
   {
static pool_type _S_pool;
@@ -490,7 +490,7 @@ namespace __gnu_cxx
 struct _M_rebind
 { typedef __per_type_pool_policy_Tp1, _PoolTp1, _Thread1 other; };

-  static pool_type
+  static __attribute__((visibility (default))) pool_type
   _S_get_pool()
   {
// Sane defaults for the _PoolTp.
@@ -536,7 +536,7 @@ namespace __gnu_cxx
 struct _M_rebind
 { typedef __per_type_pool_policy_Tp1, _PoolTp1, _Thread1 other; };

-  static pool_type
+  static __attribute__((visibility (default))) pool_type
   _S_get_pool()
   {
// Sane defaults for the _PoolTp.

(of course together with a libstdc++-v3/configure check for visibility
attribute and using a macro for that, __gxx_default_visibility or something
like that).
Not sure what other places in libstdc++-v3 headers rely on having the default
visibility.
Alternatively, we claim that all of libstdc++-v3 header stuff (or most of it)
needs default visibility and add
#pragma GCC visibility push(default) ... #pragma GCC visibility pop
markers around (most of) libstdc++-v3 headers, like it has been already
added for libsupc++ headers.  This wasn't possible earlier when we had the
16 GCC visibility pragmas stacking limit, but now that it is gone, we can
fix that up.  Of course the issues Roger raised need to be solved as well.

-- 


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


[Bug libstdc++/22482] -fvisibility=hidden and stl - SEGV in __gnu_cxx::__pooltrue::_M_reclaim_block

2005-07-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-07-14 
16:59 ---
After reading comment #3, this is in fact a dup of bug 19664.

*** This bug has been marked as a duplicate of 19664 ***

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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