Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Box::into_unique: do the reborrow-to-raw *after* destroying the Box #61086

Merged
merged 2 commits into from
May 24, 2019

Conversation

RalfJung
Copy link
Member

Currently we first "reborrow" the box to a raw pointer, and then forget it. When tracking raw pointers more strictly (something I am experimenting with locally in Miri), the "use" induced by passing the box to forget invalidates the previously created raw pointer.

So adjust my hack from #58429 to reorder the two operations.

@rust-highfive
Copy link
Collaborator

r? @alexcrichton

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label May 23, 2019
@Centril
Copy link
Contributor

Centril commented May 23, 2019

@bors rollup

@alexcrichton
Copy link
Member

@bors: r+

@bors
Copy link
Contributor

bors commented May 23, 2019

📌 Commit 8d4e7fd has been approved by alexcrichton

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 23, 2019
Centril added a commit to Centril/rust that referenced this pull request May 23, 2019
Box::into_unique: do the reborrow-to-raw *after* destroying the Box

Currently we first "reborrow" the box to a raw pointer, and then `forget` it. When tracking raw pointers more strictly (something I am experimenting with locally in Miri), the "use" induced by passing the box to `forget` invalidates the previously created raw pointer.

So adjust my hack from rust-lang#58429 to reorder the two operations.
bors added a commit that referenced this pull request May 24, 2019
Rollup of 6 pull requests

Successful merges:

 - #59545 (Use arenas to avoid Lrc in queries #2)
 - #61054 (Suggest dereferencing on assignment to mutable borrow)
 - #61056 (tweak discriminant on non-nullary enum diagnostic)
 - #61082 (fix dangling reference in Vec::append)
 - #61086 (Box::into_unique: do the reborrow-to-raw *after* destroying the Box)
 - #61098 (Fix overflowing literal lint in loops)

Failed merges:

r? @ghost
@bors bors merged commit 8d4e7fd into rust-lang:master May 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants