Skip to content

Conversation

FabianWolff
Copy link
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
Contributor

r? @petrochenkov

(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 Jun 18, 2021
Copy link
Contributor

@LeSeulArtichaut LeSeulArtichaut left a comment

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
Contributor

@bors r+
r? @LeSeulArtichaut

@bors
Copy link
Collaborator

bors commented Jun 18, 2021

📌 Commit e7a1186 has been approved by LeSeulArtichaut

@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 Jun 18, 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 fixes rust-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:master Jun 19, 2021
@rustbot rustbot added this to the 1.55.0 milestone Jun 19, 2021
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.

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