-
Notifications
You must be signed in to change notification settings - Fork 13.3k
ICE with extern C functions receiving/returning structs by value with f32/f64 members on x86_64 #5874
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
Comments
Could you run rustc under gdb, set a breakpoint in rust_task_fail and paste the backtrace here? |
Sure, here it is. I'm not sure how to compile rustc so I get the line numbers, so there are very few of those present.
|
at efd1438, no ICE but produce below messages
|
Sounds like it's no longer valid, in that case. |
It doesn't ICE, but it does generate wrong code. I submitted a new issue: #7415 |
flip1995
added a commit
to flip1995/rust
that referenced
this issue
Aug 11, 2020
Make the docs clearer for new contributors It confused me before, so I made it extra obvious that you need to run a script to set up your toolchain before you can build Clippy. I also added a note so that new contributors aren't confused when Clippy doesn't build as a result of a change in rustc's internals. changelog: make `CONTRIBUTING.md` clearer for new contributors
flip1995
pushed a commit
to flip1995/rust
that referenced
this issue
Aug 11, 2020
Rollup of 5 pull requests Successful merges: - rust-lang#5825 (Add the new lint `same_item_push`) - rust-lang#5869 (New lint against `Self` as an arbitrary self type) - rust-lang#5870 (enable #[allow(clippy::unsafe_derive_deserialize)]) - rust-lang#5871 (Lint .min(x).max(y) with x < y) - rust-lang#5874 (Make the docs clearer for new contributors) Failed merges: r? @ghost changelog: rollup
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Structs that contain f32/f64 and have a total size of <= 128 bytes produce an out of bounds error at src/librustc/middle/trans/cabi_x86_64.rs:259 . Tested with incoming at a9247e0.
Here is a collection of structs that produce an ICE and some that don't. I haven't tested whether the ones that do compile produce correct code.
Here's a representative backtrace, if it's useful:
The text was updated successfully, but these errors were encountered: