[Bug libstdc++/91308] [7 Regression] unique_ptr assignment fails with different deleters

2019-09-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91308

--- Comment #7 from Jonathan Wakely  ---
Fixed at r275296

[Bug libstdc++/91308] [7 Regression] unique_ptr assignment fails with different deleters

2019-09-03 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91308

Christophe Lyon  changed:

   What|Removed |Added

 CC||clyon at gcc dot gnu.org

--- Comment #6 from Christophe Lyon  ---
On gcc-8-branch, r275193 is causing

FAIL: 20_util/unique_ptr/assign/48635_neg.cc  (test for errors, line 307)
FAIL: 20_util/unique_ptr/assign/48635_neg.cc  (test for errors, line 566)
FAIL: 20_util/unique_ptr/assign/48635_neg.cc (test for excess errors)
FAIL: 20_util/unique_ptr/cons/cv_qual_neg.cc  (test for errors, line 473)
FAIL: 20_util/unique_ptr/cons/cv_qual_neg.cc (test for excess errors)

[Bug libstdc++/91308] [7 Regression] unique_ptr assignment fails with different deleters

2019-09-02 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91308

Jonathan Wakely  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Jonathan Wakely  ---
Fixed for 7.5, 8.4 and 9.2

[Bug libstdc++/91308] [7 Regression] unique_ptr assignment fails with different deleters

2019-09-02 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91308

--- Comment #4 from Jonathan Wakely  ---
Author: redi
Date: Mon Sep  2 11:10:04 2019
New Revision: 275311

URL: https://gcc.gnu.org/viewcvs?rev=275311=gcc=rev
Log:
PR libstdc++/91308 fix constraints on unique_ptr assignment

* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
with dg-prune-output for enable_if failure.
* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Add
dg-prune-output for enable_if failure.

Backport from mainline
2019-07-31  Jonathan Wakely  

PR libstdc++/91308
* include/bits/unique_ptr.h (unique_ptr::__safe_conversion_up): Remove
constraints on deleter that should only apply to the constructor.
(unique_ptr::__safe_conversion_up): Likewise.
(unique_ptr::unique_ptr(unique_ptr&&)): Restore
constraints on deleter here.
* testsuite/20_util/unique_ptr/assign/91308.cc: New test.

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