Skip to content

Test cargo-miri on Windows #578

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 4 commits into from
Dec 19, 2018
Merged

Test cargo-miri on Windows #578

merged 4 commits into from
Dec 19, 2018

Conversation

RalfJung
Copy link
Member

No description provided.

@RalfJung RalfJung force-pushed the misc branch 3 times, most recently from e8682aa to 728a45d Compare December 18, 2018 21:50
@RalfJung RalfJung force-pushed the misc branch 4 times, most recently from 130710d to 758b1ee Compare December 19, 2018 08:23
@RalfJung
Copy link
Member Author

Wrong size somewhere in the binops code... any good ideas how to debug this? Locally I'd use a rustc with tracing, but the nightlies don't have tracing.

thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `8`,
 right: `4`', src\librustc\mir\interpret\value.rs:288:17
stack backtrace:
   0: std::sys_common::alloc::realloc_fallback
   1: std::panicking::take_hook
   2: std::panicking::take_hook
   3: <rustc::ty::sty::Binder<rustc::ty::ProjectionPredicate<'tcx>> as rustc::ty::ToPredicate<'tcx>>::to_predicate
   4: std::panicking::rust_panic_with_hook
   5: std::panicking::begin_panic_fmt
   6: std::panicking::begin_panic_fmt
   7: rustc::mir::interpret::value::Scalar<miri::stacked_borrows::Borrow, rustc::mir::interpret::AllocId>::to_bits<miri::stacked_borrows::Borrow>
             at <::std::macros::panic macros>:8
   8: rustc_mir::interpret::eval_context::EvalContext<miri::Evaluator>::binary_op<miri::Evaluator>
             at /rustc/adbfec229ce07ff4b2a7bf2d6dec2d13cb224980\src\librustc_mir\interpret\operator.rs:345
   9: rustc_mir::interpret::eval_context::EvalContext<miri::Evaluator>::binary_op_imm<miri::Evaluator>
             at /rustc/adbfec229ce07ff4b2a7bf2d6dec2d13cb224980\src\librustc_mir\interpret\operator.rs:294
  10: rustc_mir::interpret::eval_context::EvalContext<miri::Evaluator>::eval_rvalue_into_place<miri::Evaluator>
             at /rustc/adbfec229ce07ff4b2a7bf2d6dec2d13cb224980\src\librustc_mir\interpret\step.rs:169
  11: rustc_mir::interpret::eval_context::EvalContext<miri::Evaluator>::run<miri::Evaluator>
             at /rustc/adbfec229ce07ff4b2a7bf2d6dec2d13cb224980\src\librustc_mir\interpret\step.rs:50
  12: miri::eval_main::{{closure}}
             at .\src\lib.rs:167
  13: miri::eval_main::{{closure}}
             at .\src\lib.rs:167
  14: miri::after_analysis
             at .\src\bin\miri.rs:119

@oli-obk
Copy link
Contributor

oli-obk commented Dec 19, 2018

According to the trace we're executing a bin op https://github.com/rust-lang/rust/blob/master/src/librustc_mir/interpret/step.rs#L169

I'm guessing an earlier operation wrote a wrongly sized type to a local.

One thing is GetConsoleMode returning null, which is probably pointer sized, when the windows API says BOOL, which is probably int

@RalfJung
Copy link
Member Author

One thing is GetConsoleMode returning null, which is probably pointer sized, when the windows API says BOOL, which is probably int

write_null uses the size of the destination, so that can't be it.

I hacked in some tracing, and it's GetStdHandle.

@RalfJung RalfJung force-pushed the misc branch 3 times, most recently from 81a2584 to f29126f Compare December 19, 2018 10:40
@RalfJung RalfJung force-pushed the misc branch 2 times, most recently from f6eb90c to 50c6f31 Compare December 19, 2018 12:42
…ufferInfo, SetConsoleTextAttribute, GetSystemInfo
@RalfJung RalfJung merged commit 8359898 into rust-lang:master Dec 19, 2018
bors added a commit to rust-lang/rust that referenced this pull request Dec 29, 2018
Update cargo, rls, miri

Update cargo, rls, miri

Added `rustc-workspace-hack` to miri so that it shares the same features for serde as other tools.

cc @alexcrichton

## cargo

25 commits in 2cf1f5dda2f7ed84e94c4d32f643e0f1f15352f0..0d1f1bbeabd5b43a7f3ecfa16540af8e76d5efb4
2018-12-11 03:44:04 +0000 to 2018-12-19 14:45:14 +0000
- Remove Stale bot's configuration (rust-lang/cargo#6463)
- Add labels to issue templates (rust-lang/cargo#6464)
- Fix new man page links. (rust-lang/cargo#6459)
- Fix metabuild compile errors with --message-format=json. (rust-lang/cargo#6432)
- Support alt-registry names in [patch] table. (rust-lang/cargo#6456)
- Update the rustup URL (rust-lang/cargo#6455)
- New man pages. (rust-lang/cargo#6405)
- Reify the DepFingerprint type (rust-lang/cargo#6451)
- Extract Fingerprint::new (rust-lang/cargo#6449)
- Upgrade the metabuild to Rust 2018 (rust-lang/cargo#6448)
- Make edition comparing code consistent (rust-lang/cargo#6450)
- Document `name` and `authors` in [package] (rust-lang/cargo#6447)
- Travis: only use mdbook 0.1.7. (rust-lang/cargo#6443)
- Update git2-curl requirement from 0.8.1 to 0.9.0 (rust-lang/cargo#6439)
- Update git2 requirement from 0.7.5 to 0.8.0 (rust-lang/cargo#6438)
- Display errors when `cargo fix` fails. (rust-lang/cargo#6419)
- cargo fix: fix targets with shared sources. (rust-lang/cargo#6434)
- Fix panic-in-panic in tests. (rust-lang/cargo#6431)
- More Rust 2018 edition cleanups (rust-lang/cargo#6422)
- Cleanup some trait impls for SourceId (rust-lang/cargo#6429)
- Remove a nightly check from doc tests (rust-lang/cargo#6427)
- Replace CargoError with failure::Error (rust-lang/cargo#6425)
- Allow testsuite warnings in dev (rust-lang/cargo#6426)
- add `--dry-run` option to cargo update (rust-lang/cargo#6371)
- Migrate to some Rust 2018 idioms (rust-lang/cargo#6416)

## rls

16 commits in bd5b899afb05e14d33e210ede3da241ca1ca088f..6f5e4bba7b1586fca6e0ea7724cadb5683b2f308
2018-12-10 08:53:00 +0100 to 2018-12-21 17:11:08 +0100
- Update jsonrpc-core (rust-lang/rls#1206)
- Use `home_dir` from `home` crate (rust-lang/rls#1207)
- Update cargo. (rust-lang/rls#1204)
- Fix deprecated `trim_{left,right}` warnings (rust-lang/rls#1203)
- Respect ${CARGO,RUSTUP}_HOME for tooltip relative dirs (rust-lang/rls#1201)
- Separate tooltip tests that require Racer fallback (rust-lang/rls#1200)
- tests: Don't generate tooltip results in tests/fixtures (rust-lang/rls#1199)
- Overhaul fixture handling in tests (rust-lang/rls#1190)
- Don't return symbols with empty names (rust-lang/rls#1193)
- Don't check AppVeyor CI status for bors
- Properly infer full_docs (rust-lang/rls#1192)
- Update cargo (rust-lang/rls#1191)
- Improve hover test_tooltip tests (rust-lang/rls#1175)
- Fix unused warnings (rust-lang/rls#1185)
- Workaround rust-lang/rls#703 to prevent obscure failures due to sccache. (rust-lang/rls#1177)
- Disable travis cache (rust-lang/rls#1182)

## miri

14 commits in bccadeb..6c2fc6d
2018-12-08 11:07:22 +0100 to 2018-12-26 14:28:25 +0100
- use memory::check_bounds_ptr for offset check (rust-lang/miri#589)
- Fix comparing function pointers (rust-lang/miri#587)
- fix for infallible allocation (rust-lang/miri#586)
- fix test for latest nightly (rust-lang/miri#585)
- Treat ref-to-raw cast like a reborrow: do a special kind of retag (rust-lang/miri#572)
- Test cargo-miri on Windows (rust-lang/miri#578)
- Cargo miri tweaks and test that we can exclude tests (rust-lang/miri#580)
- Fix cargo miri test (rust-lang/miri#550)
- fix for latest nightly (rust-lang/miri#574)
- Add rustc-workspace-hack. (rust-lang/miri#575)
- use RUSTC_WRAPPER for the cargo hook (rust-lang/miri#573)
- do not auto-detect the targets in the sysroot, instead specify target manually through env var (rust-lang/miri#570)
- Cleanup: Avoid repeating signatures, get rid of to_bytes hack (rust-lang/miri#568)
- Support building and running with full MIR on foreign architectures, drop support for missing MIR (rust-lang/miri#566)
@RalfJung RalfJung deleted the misc branch March 26, 2019 09:16
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants