gcc-bugs@gcc.gnu.org

2013-11-19 Thread olaf--mail.gcc at olafdietsche dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59192

Bug ID: 59192
   Summary: error: use of deleted function ‘A::A(const A&)’
   Product: gcc
   Version: 4.7.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: olaf--mail.gcc at olafdietsche dot de

Created attachment 31250
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31250&action=edit
Generated with g++-4.7 -v -save-temps -c -Wall -std=c++11 a.cpp

The following snippet compiles fine with g++ 4.6 and fails with g++ 4.7 or g++
4.8 

#include 
#include 

struct A {
A(const A&) = delete;
};

void f()
{
std::vector > q;
q.resize(4);
}

I attached the preprocessed file. If I missed a necessary part, please let
know.
System is Ubuntu 12.04

g++-4.7 -c -Wall -std=c++11 a.cpp
In file included from /usr/include/c++/4.7/deque:63:0,
 from a.cpp:1:
/usr/include/c++/4.7/bits/stl_construct.h: In instantiation of ‘void
std::_Construct(_T1*, _Args&& ...) [with _T1 = A; _Args = {const A&}]’:
/usr/include/c++/4.7/bits/stl_uninitialized.h:77:3:   required from ‘static
_ForwardIterator
std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator,
_InputIterator, _ForwardIterator) [with _InputIterator =
std::_Deque_iterator; _ForwardIterator =
std::_Deque_iterator; bool _TrivialValueTypes = false]’
/usr/include/c++/4.7/bits/stl_uninitialized.h:119:41:   required from
‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator,
_ForwardIterator) [with _InputIterator = std::_Deque_iterator; _ForwardIterator = std::_Deque_iterator]’
/usr/include/c++/4.7/bits/stl_uninitialized.h:260:63:   required from
‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator,
_ForwardIterator, std::allocator<_Tp>&) [with _InputIterator =
std::_Deque_iterator; _ForwardIterator =
std::_Deque_iterator; _Tp = A]’
/usr/include/c++/4.7/bits/stl_deque.h:841:9:   required from ‘std::deque<_Tp,
_Alloc>::deque(const std::deque<_Tp, _Alloc>&) [with _Tp = A; _Alloc =
std::allocator; std::deque<_Tp, _Alloc> = std::deque]’
/usr/include/c++/4.7/bits/stl_construct.h:77:7:   required from ‘void
std::_Construct(_T1*, _Args&& ...) [with _T1 = std::deque; _Args =
{std::deque >&}]’
/usr/include/c++/4.7/bits/stl_uninitialized.h:77:3:   required from ‘static
_ForwardIterator
std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator,
_InputIterator, _ForwardIterator) [with _InputIterator = std::deque*;
_ForwardIterator = std::deque*; bool _TrivialValueTypes = false]’
/usr/include/c++/4.7/bits/stl_uninitialized.h:119:41:   required from
‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator,
_ForwardIterator) [with _InputIterator = std::deque*; _ForwardIterator =
std::deque*]’
/usr/include/c++/4.7/bits/stl_uninitialized.h:260:63:   required from
‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator,
_ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::deque*;
_ForwardIterator = std::deque*; _Tp = std::deque]’
/usr/include/c++/4.7/bits/stl_uninitialized.h:283:69:   required from
‘_ForwardIterator std::__uninitialized_move_if_noexcept_a(_InputIterator,
_InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator =
std::deque*; _ForwardIterator = std::deque*; _Allocator =
std::allocator >]’
/usr/include/c++/4.7/bits/vector.tcc:554:5:   required from ‘void
std::vector<_Tp, _Alloc>::_M_default_append(std::vector<_Tp,
_Alloc>::size_type) [with _Tp = std::deque; _Alloc =
std::allocator >; std::vector<_Tp, _Alloc>::size_type = long
unsigned int]’
/usr/include/c++/4.7/bits/stl_vector.h:647:4:   required from ‘void
std::vector<_Tp, _Alloc>::resize(std::vector<_Tp, _Alloc>::size_type) [with _Tp
= std::deque; _Alloc = std::allocator >; std::vector<_Tp,
_Alloc>::size_type = long unsigned int]’
a.cpp:11:15:   required from here
/usr/include/c++/4.7/bits/stl_construct.h:77:7: error: use of deleted function
‘A::A(const A&)’
a.cpp:5:5: error: declared here


g++-4.7 -v
Using built-in specs.
COLLECT_GCC=g++-4.7
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.7.3-1ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.7 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin
--with-system-zlib --e

gcc-bugs@gcc.gnu.org

2013-11-19 Thread olaf--mail.gcc at olafdietsche dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59192

--- Comment #2 from Olaf Dietsche  ---
I don't know how hard this is. When I replace deque with vector or list, it
compiles with all versions from 4.6 to 4.8