Skip to content

Conversation

Mark-Simulacrum
Copy link
Member

No description provided.

@rust-highfive
Copy link
Contributor

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 Jul 4, 2019
@Mark-Simulacrum
Copy link
Member Author

This will fail on CI because we don't have a beta yet, but the date should be accurate and we should have a beta in ~40 minutes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#[cfg_attr(allfeature = "llvm-libunwind",
#[cfg_attr(feature = "llvm-libunwind",

@Mark-Simulacrum
Copy link
Member Author

2019-07-04T15:13:25.6174709Z �[0m�[1m�[38;5;9merror�[0m�[0m�[1m: use of deprecated item 'core::mem::uninitialized': use `mem::MaybeUninit` instead�[0m
2019-07-04T15:13:25.6176343Z �[0m  �[0m�[0m�[1m�[38;5;12m--> �[0m�[0msrc/libstd/io/util.rs:47:54�[0m
2019-07-04T15:13:25.6176801Z �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m
2019-07-04T15:13:25.6177324Z �[0m�[1m�[38;5;12m47�[0m�[0m �[0m�[0m�[1m�[38;5;12m| �[0m�[0m        let mut buf: [u8; super::DEFAULT_BUF_SIZE] = mem::uninitialized();�[0m
2019-07-04T15:13:25.6177845Z �[0m   �[0m�[0m�[1m�[38;5;12m| �[0m�[0m                                                     �[0m�[0m�[1m�[38;5;9m^^^^^^^^^^^^^^^^^^�[0m
2019-07-04T15:13:25.6178286Z �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m
2019-07-04T15:13:25.6178733Z �[0m   �[0m�[0m�[1m�[38;5;12m= �[0m�[0m�[1mnote�[0m�[0m: `-D deprecated` implied by `-D warnings`�[0m2019-07-04T15:13:25.6174709Z �[0m�[1m�[38;5;9merror�[0m�[0m�[1m: use of deprecated item 'core::mem::uninitialized': use `mem::MaybeUninit` instead�[0m
2019-07-04T15:13:25.6176343Z �[0m  �[0m�[0m�[1m�[38;5;12m--> �[0m�[0msrc/libstd/io/util.rs:47:54�[0m
2019-07-04T15:13:25.6176801Z �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m
2019-07-04T15:13:25.6177324Z �[0m�[1m�[38;5;12m47�[0m�[0m �[0m�[0m�[1m�[38;5;12m| �[0m�[0m        let mut buf: [u8; super::DEFAULT_BUF_SIZE] = mem::uninitialized();�[0m
2019-07-04T15:13:25.6177845Z �[0m   �[0m�[0m�[1m�[38;5;12m| �[0m�[0m                                                     �[0m�[0m�[1m�[38;5;9m^^^^^^^^^^^^^^^^^^�[0m
2019-07-04T15:13:25.6178286Z �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m
2019-07-04T15:13:25.6178733Z �[0m   �[0m�[0m�[1m�[38;5;12m= �[0m�[0m�[1mnote�[0m�[0m: `-D deprecated` implied by `-D warnings`�[0m

cc @RalfJung - I've simply allowed the warning here though I suspect this isn't the only place. It also looks like the Initializer::initialize API is not ready for MaybeUninit as taking &mut [u8] based on that documentation is UB, though I suppose it depends on whether we consider uninitialized bytes UB or not.

@RalfJung
Copy link
Member

RalfJung commented Jul 4, 2019

Yeah, while libcore and liballoc should be free of mem::uninitialized, I didn't get around to push that through libstd. Should probably open an E-mentor issue about it.

It also looks like the Initializer::initialize API is not ready for MaybeUninit as taking &mut [u8] based on that documentation is UB, though I suppose it depends on whether we consider uninitialized bytes UB or not.

Indeed. This is also related to #58363.

@RalfJung
Copy link
Member

RalfJung commented Jul 4, 2019

There's also still tons of mem::uninitialized in the platform-specific code, that will make CI fail with this PR as-is:

src/libstd/sys/cloudabi/condvar.rs
82:        let mut event: abi::event = mem::uninitialized();
83:        let mut nevents: usize = mem::uninitialized();
134:        let mut events: [abi::event; 2] = mem::uninitialized();
135:        let mut nevents: usize = mem::uninitialized();

src/libstd/sys/cloudabi/mod.rs
62:        let mut v = mem::uninitialized();

src/libstd/sys/cloudabi/time.rs
21:            let mut t = mem::uninitialized();
62:            let mut t = mem::uninitialized();

src/libstd/sys/sgx/mod.rs
143:            let mut ret: u64 = crate::mem::uninitialized();

src/libstd/sys/cloudabi/mutex.rs
56:        mem::uninitialized()
103:            let mut event: abi::event = mem::uninitialized();
104:            let mut nevents: usize = mem::uninitialized();

src/libstd/sys/cloudabi/thread.rs
75:            let mut event: abi::event = mem::uninitialized();
76:            let mut nevents: usize = mem::uninitialized();

src/libstd/sys/cloudabi/rwlock.rs
76:            let mut event: abi::event = mem::uninitialized();
77:            let mut nevents: usize = mem::uninitialized();
185:            let mut event: abi::event = mem::uninitialized();
186:            let mut nevents: usize = mem::uninitialized();

src/libstd/sys/cloudabi/abi/cloudabi.rs
1096:    let obj: auxv = core::mem::uninitialized();
1109:    let obj: auxv = core::mem::uninitialized();
1130:    let obj: ciovec = core::mem::uninitialized();
1142:    let obj: ciovec = core::mem::uninitialized();
1170:    let obj: dirent = core::mem::uninitialized();
1234:    let obj: event = core::mem::uninitialized();
1268:    let obj: fdstat = core::mem::uninitialized();
1305:    let obj: filestat = core::mem::uninitialized();
1331:    let obj: iovec = core::mem::uninitialized();
1343:    let obj: iovec = core::mem::uninitialized();
1366:    let obj: lookup = core::mem::uninitialized();
1400:    let obj: recv_in = core::mem::uninitialized();
1415:    let obj: recv_in = core::mem::uninitialized();
1444:    let obj: recv_out = core::mem::uninitialized();
1458:    let obj: recv_out = core::mem::uninitialized();
1486:    let obj: send_in = core::mem::uninitialized();
1501:    let obj: send_in = core::mem::uninitialized();
1524:    let obj: send_out = core::mem::uninitialized();
1535:    let obj: send_out = core::mem::uninitialized();
1653:    let obj: subscription = core::mem::uninitialized();
1680:    let obj: subscription = core::mem::uninitialized();
1734:    let obj: tcb = core::mem::uninitialized();
1745:    let obj: tcb = core::mem::uninitialized();
1779:    let obj: threadattr = core::mem::uninitialized();
1793:    let obj: threadattr = core::mem::uninitialized();

Probably the cloudabi and sgx modules should just get #![allow(deprecated)] for now. Does someone know who maintains those so we can Cc them?

@alexcrichton
Copy link
Member

r=me when this is green on CI

@Mark-Simulacrum
Copy link
Member Author

@bors r=alexcrichton p=50

@bors
Copy link
Collaborator

bors commented Jul 5, 2019

📌 Commit 007d87f 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 Jul 5, 2019
@bors
Copy link
Collaborator

bors commented Jul 5, 2019

⌛ Testing commit 007d87f with merge baab191...

bors added a commit that referenced this pull request Jul 5, 2019
@bors
Copy link
Collaborator

bors commented Jul 5, 2019

☀️ Test successful - checks-azure, checks-travis, status-appveyor
Approved by: alexcrichton
Pushing baab191 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jul 5, 2019
@bors bors merged commit 007d87f into rust-lang:master Jul 5, 2019
@Mark-Simulacrum Mark-Simulacrum deleted the 1.38-nightly branch July 5, 2019 10:42
Keruspe added a commit to Keruspe/rust that referenced this pull request Jul 5, 2019
This was broken by rust-lang#62376
Since rust-lang#62286 is not in beta yet, we cannot remove those not(bootstrap)

Signed-off-by: Marc-Antoine Perennou <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-bors This PR was explicitly merged by bors. 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.

6 participants