This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/51699] New: Clang refuses to compile ext/rope citing scope resolution issues
- From: "fedorabugmail at yahoo dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 29 Dec 2011 03:23:52 +0000
- Subject: [Bug libstdc++/51699] New: Clang refuses to compile ext/rope citing scope resolution issues
- Auto-submitted: auto-generated
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: unassigned@gcc.gnu.org
ReportedBy: fedorabugmail@yahoo.com
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());