Skip to content

Fix ICE with #[repr(simd)] on enum - #86444

Merged
bors merged 1 commit into
rust-lang:masterfrom
FabianWolff:issue-83505
Jun 19, 2021
Merged

Fix ICE with #[repr(simd)] on enum#86444
bors merged 1 commit into
rust-lang:masterfrom
FabianWolff:issue-83505

Conversation

@FabianWolff

Copy link
Copy Markdown
Contributor

This pull request fixes#83505. #[repr(simd)] may only be applied to structs, which correctly causes E0517 for the example given in #83505, but the compiler attempts to recover from this error, which leads to an ICE later, when .non_enum_variant() is called on the AdtDef. I have added a check that prevents this from happening.

@rust-highfive

Copy link
Copy Markdown
Contributor

r? @petrochenkov

(rust-highfive has picked a reviewer for you, use r? to override)

@rust-highfiverust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jun 18, 2021

@LeSeulArtichautLeSeulArtichaut left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One less ICE in the compiler!

@LeSeulArtichaut

Copy link
Copy Markdown
Contributor

@bors r+
r? @LeSeulArtichaut

@bors

bors commented Jun 18, 2021

Copy link
Copy Markdown
Collaborator

📌 Commit e7a1186 has been approved by LeSeulArtichaut

@borsbors 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 Jun 18, 2021
@JohnTitorJohnTitor mentioned this pull request Jun 19, 2021
Dylan-DPC-zz pushed a commit to Dylan-DPC-zz/rust that referenced this pull request Jun 19, 2021
…tichaut
Fix ICE with `#[repr(simd)]` on enum
This pull request fixesrust-lang#83505. `#[repr(simd)]` may only be applied to structs, which correctly causes `E0517` for the example given in rust-lang#83505, but the compiler attempts to recover from this error, which leads to an ICE later, when `.non_enum_variant()` is called on the `AdtDef`. I have added a check that prevents this from happening.
bors added a commit to rust-lang-ci/rust that referenced this pull request Jun 19, 2021
Rollup of 9 pull requests
Successful merges:
- rust-lang#86136 (Stabilize span_open() and span_close().)
- rust-lang#86359 (Use as_secs_f64 in JunitFormatter)
- rust-lang#86370 (Fix rustdoc stabilized versions layout)
- rust-lang#86397 (Alter std::cell::Cell::get_mut documentation)
- rust-lang#86407 (Use `map_or` instead of open-coding it)
- rust-lang#86425 (Update rustversion to 1.0.5)
- rust-lang#86440 (Update library tracking issue for libs-api rename.)
- rust-lang#86444 (Fix ICE with `#[repr(simd)]` on enum)
- rust-lang#86453 (stdlib: Fix typo in internal RefCell docs )
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
@bors
bors merged commit 84d6c68 into rust-lang:masterJun 19, 2021
@rustbotrustbot added this to the 1.55.0 milestone Jun 19, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: 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.

ICE: assertion failed: self.is_struct() || self.is_union()', compiler/rustc_middle/src/ty/adt.rs:

6 participants

@FabianWolff@rust-highfive@LeSeulArtichaut@bors@petrochenkov@rustbot