svn commit: r211755 - in head/contrib/libstdc++: include/ext src
Rui Paulo
rpaulo at FreeBSD.org
Tue Aug 24 13:38:53 UTC 2010
Author: rpaulo
Date: Tue Aug 24 13:38:53 2010
New Revision: 211755
URL: http://svn.freebsd.org/changeset/base/211755
Log:
Some fixes so we can build libstdc++ with clang:
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
o Remove two 'inline' keywords where they do not make sense
Submitted by: Dimitry Andric <dimitry at andric.com>
Reviewed by: trema
Modified:
head/contrib/libstdc++/include/ext/bitmap_allocator.h
head/contrib/libstdc++/include/ext/ropeimpl.h
head/contrib/libstdc++/src/locale-inst.cc
Modified: head/contrib/libstdc++/include/ext/bitmap_allocator.h
==============================================================================
--- head/contrib/libstdc++/include/ext/bitmap_allocator.h Tue Aug 24 13:22:01 2010 (r211754)
+++ head/contrib/libstdc++/include/ext/bitmap_allocator.h Tue Aug 24 13:38:53 2010 (r211755)
@@ -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
Modified: head/contrib/libstdc++/include/ext/ropeimpl.h
==============================================================================
--- head/contrib/libstdc++/include/ext/ropeimpl.h Tue Aug 24 13:22:01 2010 (r211754)
+++ head/contrib/libstdc++/include/ext/ropeimpl.h Tue Aug 24 13:38:53 2010 (r211755)
@@ -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(...)
Modified: head/contrib/libstdc++/src/locale-inst.cc
==============================================================================
--- head/contrib/libstdc++/src/locale-inst.cc Tue Aug 24 13:22:01 2010 (r211754)
+++ head/contrib/libstdc++/src/locale-inst.cc Tue Aug 24 13:38:53 2010 (r211755)
@@ -180,11 +180,11 @@ _GLIBCXX_END_LDBL_NAMESPACE
template class messages_byname<C>;
// ctype
- inline template class __ctype_abstract_base<C>;
+ template class __ctype_abstract_base<C>;
template class ctype_byname<C>;
// codecvt
- inline template class __codecvt_abstract_base<C, char, mbstate_t>;
+ template class __codecvt_abstract_base<C, char, mbstate_t>;
template class codecvt_byname<C, char, mbstate_t>;
// collate
More information about the svn-src-head
mailing list