libstdc++ clang build fixes

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

libstdc++ clang build fixes

Jonathan Gray
From Dimitry Andric in FreeBSD:

o Make the value_type, vector_type, iterator, __mutex_type types of
free_list class so we can access them
o In some cases template keywords must be inserted to treat classes as
dependent template names

Index: include/ext/bitmap_allocator.h
===================================================================
RCS file: /cvs/src/gnu/gcc/libstdc++-v3/include/ext/bitmap_allocator.h,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 bitmap_allocator.h
--- include/ext/bitmap_allocator.h 15 Oct 2009 17:11:31 -0000 1.1.1.1
+++ include/ext/bitmap_allocator.h 17 Dec 2011 04:18:39 -0000
@@ -549,11 +549,13 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
    */
   class free_list
   {
+  public:
     typedef size_t* value_type;
     typedef __detail::__mini_vector<value_type> vector_type;
     typedef vector_type::iterator iterator;
     typedef __mutex __mutex_type;
 
+  private:
     struct _LT_pointer_compare
     {
       bool
Index: include/ext/ropeimpl.h
===================================================================
RCS file: /cvs/src/gnu/gcc/libstdc++-v3/include/ext/ropeimpl.h,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 ropeimpl.h
--- include/ext/ropeimpl.h 15 Oct 2009 17:11:31 -0000 1.1.1.1
+++ include/ext/ropeimpl.h 17 Dec 2011 04:18:39 -0000
@@ -382,7 +382,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
   {
     _Rope_RopeLeaf<_CharT, _Alloc>* __l
       = (_Rope_RopeLeaf<_CharT, _Alloc>*)this;
-    __l->_Rope_RopeLeaf<_CharT, _Alloc>::~_Rope_RopeLeaf();
+    __l->template _Rope_RopeLeaf<_CharT, _Alloc>::~_Rope_RopeLeaf();
     _L_deallocate(__l, 1);
     break;
   }
@@ -390,7 +390,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
   {
     _Rope_RopeConcatenation<_CharT,_Alloc>* __c
       = (_Rope_RopeConcatenation<_CharT, _Alloc>*)this;
-    __c->_Rope_RopeConcatenation<_CharT, _Alloc>::
+    __c->template _Rope_RopeConcatenation<_CharT, _Alloc>::
       ~_Rope_RopeConcatenation();
     _C_deallocate(__c, 1);
     break;
@@ -399,7 +399,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
   {
     _Rope_RopeFunction<_CharT, _Alloc>* __f
       = (_Rope_RopeFunction<_CharT, _Alloc>*)this;
-    __f->_Rope_RopeFunction<_CharT, _Alloc>::~_Rope_RopeFunction();
+    __f->template _Rope_RopeFunction<_CharT, _Alloc>::~_Rope_RopeFunction();
     _F_deallocate(__f, 1);
     break;
   }
@@ -407,7 +407,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
   {
     _Rope_RopeSubstring<_CharT, _Alloc>* __ss =
       (_Rope_RopeSubstring<_CharT, _Alloc>*)this;
-    __ss->_Rope_RopeSubstring<_CharT, _Alloc>::
+    __ss->template _Rope_RopeSubstring<_CharT, _Alloc>::
       ~_Rope_RopeSubstring();
     _S_deallocate(__ss, 1);
     break;
@@ -433,7 +433,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
     {
       size_t __old_len = __r->_M_size;
       _CharT* __new_data = (_CharT*)
- _Data_allocate(_S_rounded_up_size(__old_len + __len));
+ _Rope_rep_base<_CharT, _Alloc>::_Data_allocate(_S_rounded_up_size(__old_len + __len));
       _RopeLeaf* __result;
 
       uninitialized_copy_n(__r->_M_data, __old_len, __new_data);
@@ -817,7 +817,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
     if (__result_len > __lazy_threshold)
       goto lazy;
     __section = (_CharT*)
-      _Data_allocate(_S_rounded_up_size(__result_len));
+      _Rope_rep_base<_CharT, _Alloc>::_Data_allocate(_S_rounded_up_size(__result_len));
     try
       { (*(__f->_M_fn))(__start, __result_len, __section); }
     catch(...)

Reply | Threaded
Open this post in threaded view
|

Re: libstdc++ clang build fixes

Jonathan Gray-11
anyone?

On Sat, Dec 17, 2011 at 03:25:41PM +1100, Jonathan Gray wrote:

> >From Dimitry Andric in FreeBSD:
>
> o Make the value_type, vector_type, iterator, __mutex_type types of
> free_list class so we can access them
> o In some cases template keywords must be inserted to treat classes as
> dependent template names
>
> Index: include/ext/bitmap_allocator.h
> ===================================================================
> RCS file: /cvs/src/gnu/gcc/libstdc++-v3/include/ext/bitmap_allocator.h,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 bitmap_allocator.h
> --- include/ext/bitmap_allocator.h 15 Oct 2009 17:11:31 -0000 1.1.1.1
> +++ include/ext/bitmap_allocator.h 17 Dec 2011 04:18:39 -0000
> @@ -549,11 +549,13 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
>     */
>    class free_list
>    {
> +  public:
>      typedef size_t* value_type;
>      typedef __detail::__mini_vector<value_type> vector_type;
>      typedef vector_type::iterator iterator;
>      typedef __mutex __mutex_type;
>  
> +  private:
>      struct _LT_pointer_compare
>      {
>        bool
> Index: include/ext/ropeimpl.h
> ===================================================================
> RCS file: /cvs/src/gnu/gcc/libstdc++-v3/include/ext/ropeimpl.h,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 ropeimpl.h
> --- include/ext/ropeimpl.h 15 Oct 2009 17:11:31 -0000 1.1.1.1
> +++ include/ext/ropeimpl.h 17 Dec 2011 04:18:39 -0000
> @@ -382,7 +382,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
>    {
>      _Rope_RopeLeaf<_CharT, _Alloc>* __l
>        = (_Rope_RopeLeaf<_CharT, _Alloc>*)this;
> -    __l->_Rope_RopeLeaf<_CharT, _Alloc>::~_Rope_RopeLeaf();
> +    __l->template _Rope_RopeLeaf<_CharT, _Alloc>::~_Rope_RopeLeaf();
>      _L_deallocate(__l, 1);
>      break;
>    }
> @@ -390,7 +390,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
>    {
>      _Rope_RopeConcatenation<_CharT,_Alloc>* __c
>        = (_Rope_RopeConcatenation<_CharT, _Alloc>*)this;
> -    __c->_Rope_RopeConcatenation<_CharT, _Alloc>::
> +    __c->template _Rope_RopeConcatenation<_CharT, _Alloc>::
>        ~_Rope_RopeConcatenation();
>      _C_deallocate(__c, 1);
>      break;
> @@ -399,7 +399,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
>    {
>      _Rope_RopeFunction<_CharT, _Alloc>* __f
>        = (_Rope_RopeFunction<_CharT, _Alloc>*)this;
> -    __f->_Rope_RopeFunction<_CharT, _Alloc>::~_Rope_RopeFunction();
> +    __f->template _Rope_RopeFunction<_CharT, _Alloc>::~_Rope_RopeFunction();
>      _F_deallocate(__f, 1);
>      break;
>    }
> @@ -407,7 +407,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
>    {
>      _Rope_RopeSubstring<_CharT, _Alloc>* __ss =
>        (_Rope_RopeSubstring<_CharT, _Alloc>*)this;
> -    __ss->_Rope_RopeSubstring<_CharT, _Alloc>::
> +    __ss->template _Rope_RopeSubstring<_CharT, _Alloc>::
>        ~_Rope_RopeSubstring();
>      _S_deallocate(__ss, 1);
>      break;
> @@ -433,7 +433,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
>      {
>        size_t __old_len = __r->_M_size;
>        _CharT* __new_data = (_CharT*)
> - _Data_allocate(_S_rounded_up_size(__old_len + __len));
> + _Rope_rep_base<_CharT, _Alloc>::_Data_allocate(_S_rounded_up_size(__old_len + __len));
>        _RopeLeaf* __result;
>  
>        uninitialized_copy_n(__r->_M_data, __old_len, __new_data);
> @@ -817,7 +817,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
>      if (__result_len > __lazy_threshold)
>        goto lazy;
>      __section = (_CharT*)
> -      _Data_allocate(_S_rounded_up_size(__result_len));
> +      _Rope_rep_base<_CharT, _Alloc>::_Data_allocate(_S_rounded_up_size(__result_len));
>      try
>        { (*(__f->_M_fn))(__start, __result_len, __section); }
>      catch(...)