[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-02 Thread jwakely dot gcc at gmail dot com
--- Comment #16 from jwakely dot gcc at gmail dot com 2010-03-02 11:41 --- I might have caused a regression with this change: FAIL: 30_threads/promise/members/set_value3.cc execution test WARNING: program timed out. Will investigate later today... --

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-02 Thread jwakely dot gcc at gmail dot com
--- Comment #17 from jwakely dot gcc at gmail dot com 2010-03-02 12:44 --- The 30_threads/promise/members/set_value3.cc test had a latent bug which was revealed by the unique_ptr fix. I'll change the test. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43183

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-01 Thread jwakely dot gcc at gmail dot com
--- Comment #5 from jwakely dot gcc at gmail dot com 2010-03-01 15:05 --- OK, I'm back and have had time to look at this. I vaguely remember noticing that the assignment and the deleter invocation happened in the wrong order in our implementation, but I must have forgotten about it as

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-01 Thread paolo dot carlini at oracle dot com
--- Comment #6 from paolo dot carlini at oracle dot com 2010-03-01 16:08 --- Indeed, thanks Jon. Shall we implement this for 4.5.0, or we had better wait for nullptr / nullptr_t, what do you think? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43183

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-01 Thread jwakely dot gcc at gmail dot com
--- Comment #7 from jwakely dot gcc at gmail dot com 2010-03-01 16:23 --- I think it should be fixed for 4.5 and then updated when nullptr is available. I assume that LWG 834 will be accepted in some form, so we will need an update at some point anyway, to use nullptr in release and

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-01 Thread jwakely dot gcc at gmail dot com
--- Comment #8 from jwakely dot gcc at gmail dot com 2010-03-01 16:35 --- Actually, we could just use pointer() everywhere, which would work today and would be equivalent to using nullptr, assuming the current proposed resolution of 834 or something similar. I would be very surprised

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-01 Thread paolo dot carlini at oracle dot com
--- Comment #9 from paolo dot carlini at oracle dot com 2010-03-01 17:06 --- Agreed. In two days or so I can take care of committing these changes. -- paolo dot carlini at oracle dot com changed: What|Removed |Added

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-01 Thread redi at gcc dot gnu dot org
-- redi at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |redi at gcc dot gnu dot org |dot org

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-01 Thread tjgolubi at netins dot net
dot gcc at gmail dot com gcc-bugzi...@gcc.gnu.org To: tjgol...@netins.net Sent: Monday, March 01, 2010 9:05 AM Subject: [Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035. --- Comment #5 from jwakely dot gcc at gmail dot com 2010-03-01 15:05 --- OK, I'm back

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-01 Thread redi at gcc dot gnu dot org
--- Comment #11 from redi at gcc dot gnu dot org 2010-03-01 22:30 --- (In reply to comment #10) I think it should still check for resetting to the same value to avoid duplicate deletes later. I disagree, double delete can only happen in the case of a programming error. Look at my

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-01 Thread redi at gcc dot gnu dot org
--- Comment #12 from redi at gcc dot gnu dot org 2010-03-01 22:38 --- Bear in mind that a custom deleter with custom pointer type might have very different semantics for comparing pointer values and for invoking the deleter. Consider a custom D::pointer which keeps a generation count,

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-01 Thread tjgolubi at netins dot net
...@gcc.gnu.org To: tjgol...@netins.net Sent: Monday, March 01, 2010 4:38 PM Subject: [Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035. --- Comment #12 from redi at gcc dot gnu dot org 2010-03-01 22:38 --- Bear in mind that a custom deleter with custom pointer type

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-01 Thread redi at gcc dot gnu dot org
--- Comment #14 from redi at gcc dot gnu dot org 2010-03-02 00:40 --- Subject: Bug 43183 Author: redi Date: Tue Mar 2 00:40:28 2010 New Revision: 157158 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=157158 Log: 2010-03-02 Jonathan Wakely jwakely@gmail.com PR

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-03-01 Thread redi at gcc dot gnu dot org
--- Comment #15 from redi at gcc dot gnu dot org 2010-03-02 00:41 --- Fixed. Version checked in uses swap: void reset(pointer __p = pointer()) { using std::swap; swap(std::get0(_M_t), __p); if (__p != pointer()) get_deleter()(__p);

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-02-26 Thread paolo dot carlini at oracle dot com
--- Comment #4 from paolo dot carlini at oracle dot com 2010-02-26 18:04 --- I see that you are around... ;) -- paolo dot carlini at oracle dot com changed: What|Removed |Added

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-02-25 Thread paolo dot carlini at oracle dot com
--- Comment #1 from paolo dot carlini at oracle dot com 2010-02-26 00:03 --- To be clear: we are probably going to implement this, and more, in time for 4.5.0, but we can't play this game: having a PR for each unimplemented item in the last WP would immediately overflow Bugzilla. In

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-02-25 Thread paolo dot carlini at oracle dot com
--- Comment #2 from paolo dot carlini at oracle dot com 2010-02-26 00:13 --- This didn't change in N3035, N3000 had the same wording. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43183

[Bug libstdc++/43183] std::unique_ptr::reset() does not conform to N3035.

2010-02-25 Thread paolo dot carlini at oracle dot com
--- Comment #3 from paolo dot carlini at oracle dot com 2010-02-26 00:15 --- Chris, can you please double check this? -- paolo dot carlini at oracle dot com changed: What|Removed |Added