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

x86 C ABI struct passing does not work for small structs #5744

Closed
brson opened this issue Apr 5, 2013 · 7 comments · Fixed by #12762
Closed

x86 C ABI struct passing does not work for small structs #5744

brson opened this issue Apr 5, 2013 · 7 comments · Fixed by #12762
Labels
A-codegen Area: Code generation O-x86_32 Target: x86 processors, 32 bit (like i686-*)

Comments

@brson
Copy link
Contributor

brson commented Apr 5, 2013

See run-pass/extern-pass-TwoU8s.rs and run_pass/extern-pass/TwoU16s.rs

@june0cho
Copy link
Contributor

it seems to be related to issue #5745 .

@june0cho
Copy link
Contributor

Still reproduces.

@alexcrichton
Copy link
Member

These appear to have been fixed as part of 0479d94

@huonw
Copy link
Member

huonw commented Sep 3, 2013

Closing an issue without un-xfailing the tests! The horror!

(I'm landing the un-xfail in #8932.)

@huonw
Copy link
Member

huonw commented Sep 3, 2013

Aaaaaand, it looks like this isn't fixed: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-t/builds/354/steps/test/logs/stdio

[...]
error: test run failed!
command: i686-unknown-linux-gnu/test/run-pass/extern-pass-TwoU8s.stage2-i686-unknown-linux-gnu 
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------
task <unnamed> failed at 'assertion failed: `(left == right) && (right == left)` (left: `TwoU8s{one: 22u8, two: 23u8}`, right: `TwoU8s{one: 22u8, two: 0u8}`)', /home/rustbuild/src/rust-buildbot/slave/auto-linux-32-nopt-t/build/src/test/run-pass/extern-pass-TwoU8s.rs:28

------------------------------------------

task <unnamed> failed at 'explicit failure', /home/rustbuild/src/rust-buildbot/slave/auto-linux-32-nopt-t/build/src/compiletest/runtest.rs:778
test [run-pass] run-pass/extern-pass-TwoU8s.rs ... FAILED
test [run-pass] run-pass/extern-pass-TwoU64s-ref.rs ... ok
test [run-pass] run-pass/extoption_env-not-defined.rs ... ok

error: test run failed!
command: i686-unknown-linux-gnu/test/run-pass/extern-pass-TwoU16s.stage2-i686-unknown-linux-gnu 
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------
task <unnamed> failed at 'assertion failed: `(left == right) && (right == left)` (left: `TwoU16s{one: 22u16, two: 23u16}`, right: `TwoU16s{one: 22u16, two: 0u16}`)', /home/rustbuild/src/rust-buildbot/slave/auto-linux-32-nopt-t/build/src/test/run-pass/extern-pass-TwoU16s.rs:28

------------------------------------------

task <unnamed> failed at 'explicit failure', /home/rustbuild/src/rust-buildbot/slave/auto-linux-32-nopt-t/build/src/compiletest/runtest.rs:778
test [run-pass] run-pass/extern-pass-TwoU16s.rs ... FAILED
[...]

@huonw huonw reopened this Sep 3, 2013
@alexcrichton
Copy link
Member

gah sorry! I was looking at extern-return-* instead of extern-pass-*. My bad.

@huonw
Copy link
Member

huonw commented Jan 31, 2014

triage: still broken

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-codegen Area: Code generation O-x86_32 Target: x86 processors, 32 bit (like i686-*)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants