http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51699
Bug #: 51699
Summary: Clang refuses to compile ext/rope citing scope
resolution issues
Classification: Unclassified
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: libstdc++
AssignedTo: [email protected]
ReportedBy: [email protected]
When using clang to compile an existing program, clang refuses to compile the
ext/rope header files. One of the errors given is below.
ropeimpl.h:433:2: error: use of undeclared identifier '_Data_allocate'
_Data_allocate(_S_rounded_up_size(__old_len + __len));
g++ will compile this okay but the clang authors claim this code is invalid,
http://llvm.org/bugs/show_bug.cgi?id=6454. Below are the 7 changes to the two
files that allowed a successful compile. Line numbers may not be exact.
In ropeimpl.h
383c381
< this->_L_deallocate(__l, 1);
---
> _L_deallocate(__l, 1);
392c390
< this->_C_deallocate(__c, 1);
---
> _C_deallocate(__c, 1);
400c398
< this->_F_deallocate(__f, 1);
---
> _F_deallocate(__f, 1);
409c407
< this->_S_deallocate(__ss, 1);
---
> _S_deallocate(__ss, 1);
433c431
< _Rope_base<_CharT, _Alloc>::_Data_allocate(_S_rounded_up_size(__old_len +
__len));
---
> _Data_allocate(_S_rounded_up_size(__old_len + __len));
514c512
< _Rope_base<_CharT, _Alloc>::_C_deallocate(__result,1);
---
> _C_deallocate(__result,1);
817c815
< _Rope_base<_CharT,
_Alloc>::_Data_allocate(_S_rounded_up_size(__result_len));
---
> _Data_allocate(_S_rounded_up_size(__result_len));
In rope
732c730
< this->_S_free_string(_M_data,
this->_M_size,this->_M_get_allocator());
---
> __STL_FREE_STRING(_M_data, this->_M_size, this->_M_get_allocator());