Commit Graph

5027 Commits

Author SHA1 Message Date
bors
c28a8eeb74 Auto merge of #1532 - divergentdave:thread-panic-payload, r=RalfJung
Move panic payload state from Machine to Thread

This PR moves the panic payload storage from the `Machine` state to per-thread state. Prior to this change, if one thread panicked while another was still unwinding, Miri would fail with `thread 'rustc' panicked at 'the panic runtime should avoid double-panics', src/shims/panic.rs:51:9`. I ran into this issue while prototyping a round-robin scheduler, but it's also reachable with the current scheduler and contrived programs that use blocking API calls to cause thread switching during unwinding. I wrote a test case along those lines for this change.
2020-09-03 10:09:34 +00:00
David Cook
a6746ad893 Add comment 2020-09-02 20:58:41 -05:00
David Cook
7a2c6812b9 Per-thread errno storage 2020-09-02 20:57:20 -05:00
bors
0a4ecfc225 Auto merge of #1533 - RalfJung:rustup, r=RalfJung
rustup, fix test

Cc https://github.com/rust-lang/rust/issues/76190
2020-09-01 08:58:35 +00:00
Ralf Jung
3466462306 rustup, fix test 2020-09-01 10:55:09 +02:00
David Cook
da2f268443 Review comments 2020-08-31 19:32:14 -05:00
David Cook
3ba7f46058 Move panic payload state from Machine to Thread 2020-08-29 21:38:37 -05:00
bors
9123f0e01e Auto merge of #1531 - divergentdave:cargo-miri-targets-test, r=RalfJung
Test cargo miri target selection

This is a followup to #1525, adding a few test invocations with targets specified in the cargo arguments.
2020-08-29 11:22:05 +00:00
David Cook
5d9d75fc1f Test cargo miri target selection 2020-08-28 23:12:11 -05:00
bors
c2a2e25d0b Auto merge of #1525 - divergentdave:cargo-miri-targets, r=RalfJung
Support --test/--bin/--lib in cargo-miri

This PR addresses a FIXME in cargo-miri, and filters the targets to be checked when any of the `--bin`, '--test`, or `--lib` flags are passed.
2020-08-28 07:05:12 +00:00
David Cook
64e2d3e2d0 Review comments 2020-08-27 05:00:56 -05:00
bors
13ea74549f Auto merge of #1530 - RalfJung:rustup, r=RalfJung
rustup

Another day, another `AllocRef` API change.
2020-08-27 07:28:38 +00:00
Ralf Jung
39e6baeb91 rustup 2020-08-27 09:27:58 +02:00
bors
2be4052ab0 Auto merge of #1528 - RalfJung:readme, r=RalfJung
add encoding_rs OOB arithmetic to trophy case
2020-08-27 06:37:55 +00:00
Ralf Jung
4608341ca0 add encoding_rs OOB arithmetic 2020-08-27 08:37:11 +02:00
David Cook
40847abd5f Review comments 2020-08-26 18:41:01 -05:00
David Cook
3bc8302a54 Support --test/--bin/--lib in cargo-miri 2020-08-25 19:00:46 -05:00
bors
9f3e7cf2c2 Auto merge of #1524 - RalfJung:rustup, r=RalfJung
rustup; account for ptr_offset_from stabilization

@bors r+
2020-08-24 08:07:41 +00:00
Ralf Jung
2f9de18f88 rustup; account for ptr_offset_from stabilization 2020-08-24 10:06:44 +02:00
bors
222093e815 Auto merge of #1523 - RalfJung:test-matrix, r=RalfJung
tweak test matrix

* test big-endian architecture
* test less on macOS host (it is slow)
2020-08-22 16:09:48 +00:00
Ralf Jung
df9b2127ce fix a test for big-endian targets 2020-08-22 18:07:43 +02:00
Ralf Jung
8da9d23e5e tweak test matrix: test big-endian, and test less on macOS host (it is slow) 2020-08-22 18:03:34 +02:00
bors
6b96b17470 Auto merge of #1522 - RalfJung:readme, r=RalfJung
emphasize that some flags are unsound to use
2020-08-22 12:32:35 +00:00
Ralf Jung
3b7f36ef8d emphasize that some flags are unsound to use 2020-08-22 14:31:46 +02:00
bors
e739b81669 Auto merge of #1521 - workingjubilee:bump-cargo-metadata, r=RalfJung
Bump cargo_metadata to 0.11
2020-08-21 16:58:33 +00:00
Jubilee Young
2619b4fa18 Bump cargo_metadata to 0.11 2020-08-21 01:37:56 -07:00
bors
eb08007fe8 Auto merge of #1518 - workingjubilee:remove-byteorder, r=RalfJung
Remove byteorder dependency

miri hasn't actually depended on byteorder directly for a while.
Let's remove this dependency so Rust also depends less on it.
2020-08-21 07:03:14 +00:00
Jubilee Young
f3747b635e Update lockfile 2020-08-20 16:48:35 -07:00
bors
9570008c0b Auto merge of #1520 - RalfJung:rustup, r=RalfJung
avoid promotion in alignment test to get different alignment on each try
2020-08-20 08:14:34 +00:00
Ralf Jung
237bea2c17 avoid promotion in alignment test to get different alignment on each try 2020-08-20 10:14:13 +02:00
Jubilee Young
20942fb3a7 Remove byteorder dependency
miri hasn't actually depended on byteorder directly for a while.
Let's remove this dependency so Rust also depends less on it.
2020-08-19 22:19:32 -07:00
bors
2d6d73fafe Auto merge of #1517 - RalfJung:align-test, r=RalfJung
forgot to add alignment test loop in one test

As expected, checking the physical integer address made alignment tests fragile, and I forgot to add the retry loop for this one.
2020-08-18 08:21:15 +00:00
Ralf Jung
d5b15297ac forgot to add alignment test loop in one test 2020-08-18 10:19:29 +02:00
bors
066fa629f2 Auto merge of #1513 - RalfJung:int-align, r=RalfJung
add option to use force_int for alignment check

Fixes https://github.com/rust-lang/miri/issues/1074. Depends on https://github.com/rust-lang/rust/pull/75592.
2020-08-17 16:23:07 +00:00
Ralf Jung
5b1bc4ba94 make another test more robust against random alignment 2020-08-17 18:22:46 +02:00
Ralf Jung
db159b8709 rustup 2020-08-17 16:51:48 +02:00
Ralf Jung
f691e573b2 tweak alignment check docs 2020-08-17 11:51:18 +02:00
Ralf Jung
0913653e06 make sure we test panic of interpreter-impelemted align_offset 2020-08-16 18:31:48 +02:00
Ralf Jung
d4e5943259 use real align_offset unless we symbolic alignment check is enabled 2020-08-16 18:26:04 +02:00
Ralf Jung
664706662f adjust diagnostics to alignment check mode 2020-08-16 17:16:53 +02:00
Ralf Jung
5a579f281d document -Zmiri-symbolic-alignment-check 2020-08-16 17:12:32 +02:00
Ralf Jung
cb985670c1 make alignment check integer-based by default, and add an option to make it symbolic 2020-08-16 17:08:38 +02:00
bors
ca9e988bdb Auto merge of #1510 - RalfJung:stderr, r=RalfJung
fix Stderr::as_file_handle error message
2020-08-13 12:27:24 +00:00
Ralf Jung
df311293e2 fix Stderr::as_file_handle error message 2020-08-13 14:27:03 +02:00
bors
99a57a3f9e Auto merge of #1509 - samrat:fd-trait-fixes, r=RalfJung
Remove lifetime from FileDescriptor trait

Also:
- Type annotate `handles` declaration, instead of annotating every insert.
- Add note about flush being unnecessary when writing to stderr

Addresses comments in #1495 and #1497
2020-08-13 11:57:46 +00:00
Samrat Man Singh
0c25064117
Remove unnecessary whitespace
Co-authored-by: Ralf Jung <post@ralfj.de>
2020-08-13 16:18:08 +05:30
Samrat Man Singh
46852d736e Remove lifetime from FileDescriptor trait
Also:
- Remove type annotate `handles` declaration instead of every insert.
- Add note about flush being unnecessary when writing to stderr
2020-08-13 15:01:52 +05:30
bors
1bfb26d6ca Auto merge of #1504 - RalfJung:ill-formed-const, r=RalfJung
add test for unused ill-formed constant

Once https://github.com/rust-lang/rust/pull/75339 lands, this test should pass.

Fixes https://github.com/rust-lang/miri/issues/1382.
2020-08-13 06:44:00 +00:00
Ralf Jung
925d60760e rustup 2020-08-13 08:43:28 +02:00
Ralf Jung
80929e17ae add test for unused ill-formed constant
also use better span in TopFrameInfo
2020-08-13 08:33:36 +02:00