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

Projects
None yet
5 participants
@petertodd
Copy link
Contributor

commented May 6, 2019

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)

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.
@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented May 6, 2019

r? @nikomatsakis

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

petertodd added some commits May 7, 2019

@petertodd

This comment has been minimized.

Copy link
Contributor Author

commented May 7, 2019

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

@nikomatsakis

This comment has been minimized.

Copy link
Contributor

commented May 17, 2019

@bors r+ rollup

@bors

This comment has been minimized.

Copy link
Contributor

commented May 17, 2019

📌 Commit aa1db24 has been approved by nikomatsakis

@Centril

This comment has been minimized.

Copy link
Member

commented May 19, 2019

@bors r=nikomatsakis,Centril rollup

@bors

This comment has been minimized.

Copy link
Contributor

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

Rollup merge of rust-lang#60590 - petertodd:2018-test-union-nonzero, …
…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

Auto merge of #60969 - Centril:rollup-3j71mqj, r=Centril
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

1 check passed

Travis CI - Pull Request Build Passed
Details

@petertodd petertodd deleted the petertodd:2018-test-union-nonzero branch May 20, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.