[prev in list] [next in list] [prev in thread] [next in thread]
List: gcc-bugs
Subject: [Bug libstdc++/52442] New: temporary_buffer does not swap
From: "giecrilj at stegny dot 2a.pl" <gcc-bugzilla () gcc ! gnu ! org>
Date: 2012-02-29 21:19:54
Message-ID: bug-52442-4 () http ! gcc ! gnu ! org/bugzilla/
[Download RAW message or body]
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52442
Bug #: 52442
Summary: temporary_buffer does not swap
Classification: Unclassified
Product: gcc
Version: 4.6.2
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: libstdc++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: giecrilj@stegny.2a.pl
Created attachment 26792
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26792
the preprocessed file (*.i*) that triggers the bug
There is currently no way to use a temporary_buffer to implement a
buffer-growing loop as recommended e.g. by gethostname API. The reason is that
a temporary_buffer does not swap.
the exact version of GCC: 4.6.2
the system type: (SUSE Linux)
the options given when GCC was configured/built;
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.6/lto-wrapper
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info
--mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64
--enable-languages=c,c++,objc,fortran,obj-c++,java,ada
--enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.6
--enable-ssp --disable-libssp --disable-plugin
--with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux'
--disable-libgcj --disable-libmudflap --with-slibdir=/lib64 --with-system-zlib
--enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch
--enable-version-specific-runtime-libs --program-suffix=-4.6
--enable-linux-futex --without-system-libunwind --with-arch-32=i586
--with-tune=generic --build=x86_64-suse-linux
Thread model: posix
the complete command line that triggers the bug: { gcc -c tmpswap.cpp; }
the compiler output (error messages, warnings, etc.):
In file included from tmpswap.cpp:1:0:
/usr/include/c++/4.6/bits/stl_tempbuf.h: In copy constructor
‘__gnu_cxx::temporary_buffer<char*>::temporary_buffer(const
__gnu_cxx::temporary_buffer<char*>&)':
/usr/include/c++/4.6/ext/memory:184:12: instantiated from ‘void
std::swap(_Tp&, _Tp&) [with _Tp = __gnu_cxx::temporary_buffer<char*>]'
tmpswap.cpp:7:22: instantiated from here
/usr/include/c++/4.6/bits/stl_tempbuf.h:174:7: error:
‘std::_Temporary_buffer<_ForwardIterator, _Tp>::_Temporary_buffer(const
std::_Temporary_buffer<_ForwardIterator, _Tp>&) [with _ForwardIterator = char*,
_Tp = char, std::_Temporary_buffer<_ForwardIterator, _Tp> =
std::_Temporary_buffer<char*, char>]' is private
/usr/include/c++/4.6/ext/memory:184:12: error: within this context
In file included from /usr/include/c++/4.6/bits/stl_pair.h:60:0,
from /usr/include/c++/4.6/bits/stl_algobase.h:65,
from /usr/include/c++/4.6/memory:64,
from /usr/include/c++/4.6/ext/memory:62,
from tmpswap.cpp:1:
/usr/include/c++/4.6/bits/move.h: In function ‘void std::swap(_Tp&, _Tp&) [with
_Tp = __gnu_cxx::temporary_buffer<char*>]':
tmpswap.cpp:7:22: instantiated from here
/usr/include/c++/4.6/bits/move.h:127:19: note: synthesized method
‘__gnu_cxx::temporary_buffer<char*>::temporary_buffer(const
__gnu_cxx::temporary_buffer<char*>&)' first required here
In file included from tmpswap.cpp:1:0:
/usr/include/c++/4.6/bits/stl_tempbuf.h: In member function
‘__gnu_cxx::temporary_buffer<char*>&
__gnu_cxx::temporary_buffer<char*>::operator=(const
__gnu_cxx::temporary_buffer<char*>&)':
/usr/include/c++/4.6/bits/stl_tempbuf.h:177:7: error: ‘void
std::_Temporary_buffer<_ForwardIterator, _Tp>::operator=(const
std::_Temporary_buffer<_ForwardIterator, _Tp>&) [with _ForwardIterator = char*,
_Tp = char, std::_Temporary_buffer<_ForwardIterator, _Tp> =
std::_Temporary_buffer<char*, char>]' is private
/usr/include/c++/4.6/ext/memory:184:12: error: within this context
In file included from /usr/include/c++/4.6/bits/stl_pair.h:60:0,
from /usr/include/c++/4.6/bits/stl_algobase.h:65,
from /usr/include/c++/4.6/memory:64,
from /usr/include/c++/4.6/ext/memory:62,
from tmpswap.cpp:1:
/usr/include/c++/4.6/bits/move.h: In function ‘void std::swap(_Tp&, _Tp&) [with
_Tp = __gnu_cxx::temporary_buffer<char*>]':
tmpswap.cpp:7:22: instantiated from here
/usr/include/c++/4.6/bits/move.h:128:7: note: synthesized method
‘__gnu_cxx::temporary_buffer<char*>&
__gnu_cxx::temporary_buffer<char*>::operator=(const
__gnu_cxx::temporary_buffer<char*>&)' first required here
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic