Commit Graph

3012 Commits

Author SHA1 Message Date
Aaron Hill
8650f02bc9
Add trailing comma 2019-08-04 16:12:24 -04:00
Aaron Hill
6b087d2536
Add test 2019-08-04 16:12:24 -04:00
Aaron Hill
56a9a283e7
Cleanup formatting 2019-08-04 16:12:24 -04:00
Aaron Hill
a2bdb3bb94
Shim 'libc::getrandom' in addition to 'libc::syscall(libc::SYS_getrandom)' 2019-08-04 16:12:23 -04:00
bors
bc82f83298 Auto merge of #884 - Aaron1011:fix/linux-getrandom, r=RalfJung
Allowing passing a null pointer to getrandom() when length is 0

The Linux kernel will handle a null pointer passed to 'getrandom'
without error, as long as the length is also 0. The `getrandom` crate
relies on this behavior: ab44edf3c7/src/linux_android.rs (L26)

Since it works fine on the actual kernel (and should continue to, due to
the kernel's backwards-compatibility guarantees), Miri should support it
as well.
2019-08-04 19:50:41 +00:00
Aaron Hill
4d3398fc62
Replace match with expect() 2019-08-04 15:49:14 -04:00
bors
8053288bd0 Auto merge of #887 - RalfJung:readme, r=RalfJung
README: add getrandom bug
2019-08-04 17:37:00 +00:00
Aaron Hill
c2f681f005
Add semicolon
Co-Authored-By: Ralf Jung <post@ralfj.de>
2019-08-04 10:13:29 -04:00
Aaron Hill
0505868d18
Do nothing when we try to generate random data of length 0
This preserves compatibility with programs that pass a null pointer and
a length of zero to getrandom(), or their platform's equivalent.
2019-08-04 09:21:17 -04:00
Ralf Jung
e8d956c4fa add getrandom bug 2019-08-04 15:09:13 +02:00
bors
d82b24422d Auto merge of #883 - RalfJung:gen_random, r=RalfJung
gen_random helper: move ptr argument to front

This matches, for example, the `getrandom` syscall.
2019-08-04 12:57:16 +00:00
Ralf Jung
0096a0df2a gen_random helper: move ptr argument to front 2019-08-04 14:49:10 +02:00
bors
ed30152b52 Auto merge of #876 - RalfJung:atomic, r=RalfJung
check that atomics are sufficiently aligned

Fixes https://github.com/rust-lang/miri/issues/475
2019-08-04 08:55:18 +00:00
Ralf Jung
a4cc58efc6 one more place -> ptr rename 2019-08-04 10:54:07 +02:00
Ralf Jung
19add0bb75 places and pointers are not the same thing; this is a place 2019-08-04 10:52:09 +02:00
Ralf Jung
f47e58950b check that atomics are sufficiently aligned, and add test 2019-08-04 10:30:42 +02:00
Ralf Jung
702f63e427 test AtomicU64 2019-08-04 10:30:42 +02:00
Ralf Jung
ca4969d4da consolidate atomic tests 2019-08-04 10:30:42 +02:00
bors
843691d612 Auto merge of #882 - RalfJung:miri-rustc, r=RalfJung
install xargo from git temporarily

This is so that once https://github.com/japaric/xargo/pull/246 landed, we can see if that helps with https://github.com/rust-lang/rust/pull/63162.
2019-08-04 08:26:51 +00:00
Ralf Jung
162c0ffb1f use postfix negation instead of prefix 2019-08-04 10:14:51 +02:00
Ralf Jung
874437d717 install xargo from git temporarily 2019-08-04 10:11:45 +02:00
bors
d9d6df93a9 Auto merge of #881 - RalfJung:rustup, r=RalfJung
adjust for rustc changes
2019-08-03 18:56:38 +00:00
Ralf Jung
a41ec9aacb adjust error messages in tests 2019-08-03 20:54:57 +02:00
Ralf Jung
8d99e42f47 test memalign contract (rustc is fixed) 2019-08-03 20:53:42 +02:00
Ralf Jung
f65e7cd2d1 adjust for rustc changes 2019-08-03 20:31:33 +02:00
bors
d0e8850267 Auto merge of #877 - christianpoveda:ldexp-shim, r=RalfJung
Add shim for ldexp

Fixes https://github.com/rust-lang/miri/issues/821

r? @RalfJung
2019-08-03 16:14:20 +00:00
Christian Poveda
c4cea035e6 Formatting 2019-08-03 10:51:23 -05:00
bors
a71ebf9066 Auto merge of #880 - RalfJung:miri-rustc, r=RalfJung
annotate some unwraps with better messages
2019-08-03 15:22:09 +00:00
Ralf Jung
10f46336af set RUSTC_DEBUG_ASSERTIONS for when we are in bootstrap 2019-08-03 17:21:30 +02:00
Ralf Jung
ab22da8ce8 annotate some unwraps with better messages 2019-08-03 16:59:30 +02:00
bors
9d3fdeeed7 Auto merge of #856 - RalfJung:type_dispatch_first, r=RalfJung
Adjust for ptr_op changes

This is the Miri side of https://github.com/rust-lang/rust/pull/62946.
2019-08-03 13:15:51 +00:00
Ralf Jung
5efacf636b bump Rust 2019-08-03 15:15:28 +02:00
Ralf Jung
61d8a4e101 simplify code 2019-08-03 15:01:04 +02:00
Ralf Jung
773f6aeb4c remove some compile-fail tests that now work 2019-08-03 15:01:04 +02:00
Ralf Jung
82da68c5ca implement all ptr comparisons through integer casts 2019-08-03 15:01:04 +02:00
Ralf Jung
bb6a91dc94 adjust for ptr_op now being called type-based 2019-08-03 14:38:36 +02:00
bors
247786dba6 Auto merge of #879 - RalfJung:rustc-tests, r=RalfJung
also let bootstrap tell us where to find xargo
2019-08-03 11:55:08 +00:00
Ralf Jung
e71ca965b9 also let bootstrap tell us where to find xargo 2019-08-03 13:53:32 +02:00
bors
f463621a90 Auto merge of #878 - RalfJung:rustup, r=RalfJung
Rustup for error changes
2019-08-03 08:36:58 +00:00
Ralf Jung
312b546026 bump Rust 2019-08-03 10:26:15 +02:00
Ralf Jung
8071034b93 fix for error refactoring 2019-08-03 10:25:55 +02:00
Christian Poveda
ff2001040f Add shim for ldexp 2019-08-02 15:46:28 -05:00
bors
079b53e70e Auto merge of #875 - RalfJung:miri-rustc, r=RalfJung
honor CARGO env var (for rustc bootstrap)
2019-08-02 16:04:16 +00:00
Ralf Jung
0dab3d5ee1 honor CARGO env var (for rustc bootstrap) 2019-08-02 18:02:54 +02:00
bors
2f5ef735cf Auto merge of #874 - RalfJung:zst, r=RalfJung
test dangling ZST deref

Fixes https://github.com/rust-lang/miri/issues/582.
2019-08-02 12:27:55 +00:00
Ralf Jung
2973063fa3 test dangling ZST deref 2019-08-02 14:26:15 +02:00
bors
f0e871785f Auto merge of #870 - RalfJung:miri-rustc, r=oli-obk
Prepare Miri for rustc bootstrap building a separate libstd for it
2019-08-02 08:08:35 +00:00
bors
e00fa966ac Auto merge of #872 - RalfJung:retag-shallow, r=oli-obk
Make Retag shallow

A shallow retag does not traverse into fields of compound typed to search for references to retag. It only retags "top-level"/"bare" references (and boxes).

This helps with https://github.com/rust-lang/unsafe-code-guidelines/issues/125 because it also means that we do not add protectors for references passed in fields of a struct (or other compound types). Until we know what the rules should be for protectors, I prefer to be less aggressive about what we are rejecting.
This also matches our work-in-progress Coq formalization.
2019-08-02 07:40:02 +00:00
Ralf Jung
30fb027f33 comment 2019-08-02 08:38:22 +02:00
Ralf Jung
3318657eaf test Ref/RefMut protector interactions 2019-08-02 08:15:52 +02:00