[Bug libstdc++/77990] unique_ptr<T, D>::unique_ptr(T*) imposes CopyConstructible on the deleter

2016-10-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77990

Jonathan Wakely  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |5.5

--- Comment #3 from Jonathan Wakely  ---
Fixed for 5.5, 6.3 and trunk. Thanks for reporting it.

[Bug libstdc++/77990] unique_ptr<T, D>::unique_ptr(T*) imposes CopyConstructible on the deleter

2016-10-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77990

--- Comment #4 from Jonathan Wakely  ---
Author: redi
Date: Wed Oct 19 10:36:24 2016
New Revision: 241337

URL: https://gcc.gnu.org/viewcvs?rev=241337=gcc=rev
Log:
PR77990 fix unique_ptr for non-copyable deleters

PR libstdc++/77990
* include/bits/unique_ptr.h (unique_ptr::unique_ptr(pointer)): Set
pointer member after value-initialization of tuple.
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust dg-errors.
* testsuite/20_util/unique_ptr/cons/77990.cc: New test.

Added:
   
branches/gcc-5-branch/libstdc++-v3/testsuite/20_util/unique_ptr/cons/77990.cc
  - copied, changed from r241324,
branches/gcc-5-branch/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
Modified:
branches/gcc-5-branch/libstdc++-v3/ChangeLog
branches/gcc-5-branch/libstdc++-v3/include/bits/unique_ptr.h
   
branches/gcc-5-branch/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc

[Bug libstdc++/77990] unique_ptr<T, D>::unique_ptr(T*) imposes CopyConstructible on the deleter

2016-10-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77990

--- Comment #2 from Jonathan Wakely  ---
Author: redi
Date: Wed Oct 19 10:15:27 2016
New Revision: 241333

URL: https://gcc.gnu.org/viewcvs?rev=241333=gcc=rev
Log:
PR77990 fix unique_ptr for non-copyable deleters

PR libstdc++/77990
* include/bits/unique_ptr.h (unique_ptr::unique_ptr(pointer)): Set
pointer member after value-initialization of tuple.
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust dg-errors.
* testsuite/20_util/unique_ptr/cons/77990.cc: New test.
* testsuite/20_util/unique_ptr/cons/cv_qual.cc: Adjust dg-error.

Added:
   
branches/gcc-6-branch/libstdc++-v3/testsuite/20_util/unique_ptr/cons/77990.cc
Modified:
branches/gcc-6-branch/libstdc++-v3/ChangeLog
branches/gcc-6-branch/libstdc++-v3/include/bits/unique_ptr.h
   
branches/gcc-6-branch/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
   
branches/gcc-6-branch/libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc

[Bug libstdc++/77990] unique_ptr<T, D>::unique_ptr(T*) imposes CopyConstructible on the deleter

2016-10-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77990

--- Comment #1 from Jonathan Wakely  ---
Author: redi
Date: Wed Oct 19 09:34:57 2016
New Revision: 241330

URL: https://gcc.gnu.org/viewcvs?rev=241330=gcc=rev
Log:
PR77990 refactor unique_ptr to encapsulate tuple

PR libstdc++/77990
* include/bits/unique_ptr.h (__uniq_ptr_impl): New type to
encapsulate implementation details.
(unique_ptr::unique_ptr(_Up)): Don't copy deleter object.
(unique_ptr::get, unique_ptr::get_deleter, unique_ptr::release):
Call member functions of implementation object.
(unique_ptr): Likewise.
* python/libstdcxx/v6/printers.py (UniquePointerPrinter): Adjust for
new implementation.
* python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Likewise.
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust dg-error
lines.
* testsuite/20_util/unique_ptr/assign/cv_qual.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/cv_qual.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/77990.cc: New test.

Added:
trunk/libstdc++-v3/testsuite/20_util/unique_ptr/cons/77990.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/unique_ptr.h
trunk/libstdc++-v3/python/libstdcxx/v6/printers.py
trunk/libstdc++-v3/python/libstdcxx/v6/xmethods.py
trunk/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
trunk/libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc

[Bug libstdc++/77990] unique_ptr<T, D>::unique_ptr(T*) imposes CopyConstructible on the deleter

2016-10-14 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77990

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2016-10-14
   Assignee|unassigned at gcc dot gnu.org  |redi at gcc dot gnu.org
 Ever confirmed|0   |1