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

Test interaction of unions with non-zero/niche-filling optimization #60590

Merged
merged 4 commits into from
May 20, 2019

Conversation

petertodd
Copy link
Contributor

Notably this nails down part of the behavior that MaybeUninit assumes, e.g. that a Option<MaybeUninit<&u8>> does not take advantage of non-zero optimization, and thus is a safe construct.

It also verifies the status quo: that even unions that could theoretically take advantage of niches don't. (relevant: #36394)

Notably this nails down part of the behavior that MaybeUninit assumes,
e.g. that a Option<MaybeUninit<&u8>> does not take advantage of non-zero
optimization, and thus is a safe construct.
@rust-highfive
Copy link
Collaborator

r? @nikomatsakis

(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 6, 2019
@petertodd
Copy link
Contributor Author

Added explanation, as well as a test of a non-non-zero/niche-filled enum in a union.

@nikomatsakis
Copy link
Contributor

@bors r+ rollup

@bors
Copy link
Contributor

bors commented May 17, 2019

📌 Commit aa1db24 has been approved by nikomatsakis

@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 17, 2019
@Centril
Copy link
Contributor

Centril commented May 19, 2019

@bors r=nikomatsakis,Centril rollup

@bors
Copy link
Contributor

bors commented May 19, 2019

📌 Commit a91ad60 has been approved by nikomatsakis,Centril

Centril added a commit to Centril/rust that referenced this pull request May 19, 2019
…r=nikomatsakis,Centril

Test interaction of unions with non-zero/niche-filling optimization

Notably this nails down part of the behavior that MaybeUninit assumes, e.g. that a Option<MaybeUninit<&u8>> does not take advantage of non-zero optimization, and thus is a safe construct.

It also verifies the status quo: that even unions that could theoretically take advantage of niches don't. (relevant: rust-lang#36394)
bors added a commit that referenced this pull request May 20, 2019
Rollup of 6 pull requests

Successful merges:

 - #60590 (Test interaction of unions with non-zero/niche-filling optimization)
 - #60745 (Perform constant propagation into terminators)
 - #60895 (Enable thumbv7a-pc-windows-msvc target build end to end in rust/master)
 - #60908 (Fix lints handling in rustdoc)
 - #60960 (Stop using gensyms in HIR lowering)
 - #60962 (Fix data types indication)

Failed merges:

r? @ghost
@bors bors merged commit a91ad60 into rust-lang:master May 20, 2019
@petertodd petertodd deleted the 2018-test-union-nonzero branch May 20, 2019 04:51
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