Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
8ac5d988e2
typo
...
Co-Authored-By: RalfJung <post@ralfj.de>
2018-11-03 11:39:50 +01:00
Ralf Jung
8da2c9e34e
fix adding default arguments
2018-11-03 11:03:53 +01:00
Ralf Jung
dc859f345d
Merge remote-tracking branch 'origin/master' into rustup
2018-11-02 14:32:56 +01:00
Ralf Jung
a68779fd16
use crate:: import to make edition port easier later
2018-11-01 09:00:09 +01:00
Ralf Jung
81534496dc
rename RefKind to UsageKind, because it not only used for references now
2018-11-01 08:58:03 +01:00
Ralf Jung
478f137c39
put all the logic into reactivatable()
2018-11-01 08:58:03 +01:00
Ralf Jung
85f821d7e9
unify checks on memory access and reborrowing, and update for Machine trait change
2018-11-01 08:58:03 +01:00
Ralf Jung
bba3c49e84
basic retagging (no fn_entry); this also makes us catch more bugs even with optimizations and we can finally stop mutating the state on deref
2018-11-01 08:58:03 +01:00
Ralf Jung
7ac0e79ad5
stub Retag hook; fix tests for removal of -Zmir-emit-validate
2018-11-01 08:58:03 +01:00
Ralf Jung
fba55ba2a9
make the -Z flags we use more consistent
2018-11-01 08:58:03 +01:00
Ralf Jung
27b1f47b0a
use crate:: where appropriate
2018-11-01 08:57:22 +01:00
Ralf Jung
1fe925e758
Merge branch 'master' into atomic-arith
2018-10-31 11:19:26 +01:00
Ralf Jung
40b7502613
Reject atomic arithmetic on non-integer types
...
Fixes #181
2018-10-31 11:04:35 +01:00
Ralf Jung
016009a301
properly recognize log levels
2018-10-31 10:58:19 +01:00
Ralf Jung
5397f2e436
when using MIRI_LOG, avoid logging for what rustc does before miri gets started
2018-10-31 10:53:37 +01:00
Ralf Jung
7a6a68731e
remove unused extern crate
2018-10-31 10:19:20 +01:00
Ralf Jung
cd256448d5
dumping locals with MIRI_BACKTRACE=1 is feasible now
2018-10-31 10:16:42 +01:00
Ralf Jung
eb153810e3
Use MIRI_ env vars to set RUST_ ones
...
This means we can do `MIRI_LOG=debug cargo run` and get something reasonable,
even if cargo has to build some dependencies first.
2018-10-31 10:09:55 +01:00
Ralf Jung
1fa0ff88c0
fix nits
2018-10-30 10:41:01 +01:00
Ralf Jung
559f63a2b6
Merge remote-tracking branch 'origin/master' into rustup
2018-10-30 08:40:30 +01:00
Ralf Jung
4ccdcdcace
rustup
2018-10-29 09:15:15 +01:00
Ralf Jung
4a98f64142
Merge remote-tracking branch 'origin/master' into rustup
2018-10-26 15:06:21 +02:00
Ralf Jung
d890a70c39
update for is_null removal
2018-10-25 11:37:42 +02:00
Ralf Jung
a34b9c7b70
make some things public for the benefit of priroda
2018-10-24 11:39:31 +02:00
Ralf Jung
5388037f8a
remove code duplication by letting reactivatable() compute what reactivate() has to do
2018-10-23 15:59:50 +02:00
Ralf Jung
fe83ef323c
also run compile-fail tests with and without optimizations
2018-10-23 13:09:17 +02:00
Ralf Jung
26bb4f79dc
get rid of implicit Raw at bottom of stack; locals get a uniq at their bottom
2018-10-22 18:17:37 +02:00
Ralf Jung
01828fde53
respect memory's privacy
2018-10-22 16:48:10 +02:00
Ralf Jung
dd1558f337
rustc update and be very selective about what we accept on a deref
2018-10-22 16:48:09 +02:00
Ralf Jung
1ae1b9bfea
adapt to rustc API changes and factor out computing the tag for ty+mutbl
2018-10-22 16:45:03 +02:00
Ralf Jung
1a7fb7ec3c
expand comment about incomplete support for interior mutability
2018-10-22 12:51:47 +02:00
Ralf Jung
957d18c343
Merge remote-tracking branch 'origin/master' into rustup
2018-10-22 08:41:01 +02:00
Ralf Jung
069b661a10
typo
2018-10-19 10:09:53 +02:00
Ralf Jung
0b6e349417
automalically use start-fn if we have all the MIR
2018-10-19 10:07:17 +02:00
Ralf Jung
186e42d088
move resolve_path to helpers module
2018-10-19 09:54:41 +02:00
Andrew Poelstra
4fa5bfa2bb
add some comments to clarify command-line argument munging in #482
2018-10-17 20:24:52 +00:00
Ralf Jung
b259512c57
bump for ENABLE_PTR_TRACKING_HOOKS, and remove some dead code
2018-10-17 17:36:07 +02:00
Ralf Jung
d4b78b36ab
stacked borrows: enforcement at memory accesses
2018-10-17 15:15:53 +02:00
Ralf Jung
66b4bb7cf2
stacked borrows: track refs and derefs
2018-10-16 18:35:27 +02:00
Ralf Jung
348f782085
add env var emulation test, and fix it complaining about leaks
2018-10-16 18:35:27 +02:00
Ralf Jung
b84f7e2029
add Borrow tag to pointers; remove old locking code
2018-10-16 18:35:27 +02:00
Andrew Poelstra
4faf8fad10
cargo-miri: support running unit tests for libraries as well as test binaries
2018-10-15 18:38:07 +00:00
Ralf Jung
88ec62640e
make rustc-tests a binary in the main project
2018-10-14 11:48:15 +02:00
Ralf Jung
9a1dd865c1
whitelist Windows Mutex
2018-10-14 11:06:36 +02:00
Ralf Jung
837a17625a
Merge remote-tracking branch 'origin/master' into rustup
2018-10-14 10:35:27 +02:00
Ralf Jung
62b819ba18
whitelist std::ptr::read
2018-10-12 10:40:44 +02:00
Ralf Jung
b99e1267be
atomics wrap around on overflow
2018-10-12 09:08:17 +02:00
Ralf Jung
1846f111c9
fix return place for __rust_maybe_catch_panic
2018-10-11 15:28:21 +02:00
Ralf Jung
e4dfb7013b
enable validation per default, but add a flag to disable it and use that for some run-pass tests
...
compile-fail does not do validation yet
2018-10-11 11:24:22 +02:00
Ralf Jung
d94d32e937
enforce_validity became a function
2018-10-11 09:02:28 +02:00
Ralf Jung
791f464ea0
update for size_and_align considering extern types
2018-10-11 08:59:39 +02:00
Ralf Jung
ce5b183e8b
update for new return place handling
2018-10-11 08:59:39 +02:00
Ralf Jung
8ea8cd2919
update for ptr provenance
2018-10-11 08:42:26 +02:00
Ralf Jung
a439262859
Merge branch 'master' into ptr-offset
2018-10-10 10:03:34 +02:00
Ralf Jung
edf28fa227
only allow offset-by-0 on integer pointers
2018-10-09 20:13:46 +02:00
Ralf Jung
cc275c63a9
fix for fn allocations now having an alignment (1) and a size (0)
2018-10-08 13:35:54 +02:00
Ralf Jung
146f5d8d10
rustup; test for return type mismatch
2018-10-02 21:16:55 +02:00
Ralf Jung
72cd905484
rustup
2018-10-02 09:25:55 +02:00
Ralf Jung
1ce05523c4
remove needs_drop impl
2018-10-01 08:24:42 +02:00
Ralf Jung
8d7cdbb853
rustup
2018-09-20 12:24:55 +02:00
Ralf Jung
ea4232cf22
Move TLS data to machine data
...
There is no good reason to let the machine store stuff in the machine *and* in memory. I plan to get rid of the latter.
2018-09-20 01:00:59 +02:00
Ralf Jung
18d7394071
more compile-fail ptr equality tests, to rule out any non-determinism; and fix ptr equality to fail all of them.
...
At least these are the cases I can think of right now.
2018-09-17 10:02:31 +02:00
Ralf Jung
95d79cc11e
Merge remote-tracking branch 'origin/master' into zero-sized-accesses
2018-09-17 08:39:59 +02:00
Ralf Jung
f925e5dafd
cargo miri: show version number
2018-09-16 15:18:18 +02:00
Ralf Jung
b488b51b66
bump Rust
2018-09-15 10:34:45 +02:00
Ralf Jung
d889da43f8
move MemoryData to memory.rs; remove all the Hashing stuff
2018-09-09 11:01:15 +02:00
Tim
72918c1a97
Remove (overflowing_)add/mul/sub(_with_overflow)
2018-09-06 16:49:08 +02:00
Tim
055c63ab0d
Remove unchecked_shr/shl from intrinsics
2018-09-06 16:07:13 +02:00
Ralf Jung
6dff6e84d7
Merge branch 'master' into master
2018-09-01 11:47:52 +02:00
thedarkula
90d7cb2493
Removed transmute from intrinsic.rs
2018-09-01 11:47:20 +02:00
Ralf Jung
d3928f6356
more permissive pointer comparison logic
2018-09-01 11:26:54 +02:00
Ralf Jung
2a318264ea
also allow comparing pointers with integers so big that they cannot be equal
2018-08-30 11:05:52 +02:00
Ralf Jung
fe9cd1c98d
strictly enforce pointer validity even for zero-sized accesses
2018-08-30 10:50:13 +02:00
Ralf Jung
c44267960f
ptr equality: only defined for ptrs in the same allocation and live ptrs
2018-08-30 10:46:09 +02:00
Ralf Jung
904923fa7a
move some more helpers to rustc
2018-08-30 10:42:18 +02:00
Ralf Jung
2a244dcb48
no TLS dtor and no leak checks on macOS
2018-08-30 09:41:57 +02:00
Ralf Jung
e2ec521f21
pretend mprotect works
2018-08-30 09:22:01 +02:00
Ralf Jung
b4ebe72b1b
stack address functions for macOS
2018-08-30 09:04:57 +02:00
Ralf Jung
0db1c6a1b0
ignore memory leaks on Windows
2018-08-30 08:57:33 +02:00
Ralf Jung
1b41b71827
update for MUT_STATIC_KIND
2018-08-26 13:19:03 +02:00
Ralf Jung
1ba6140891
rustup
2018-08-25 21:22:06 +02:00
Ralf Jung
823837922b
update for enum discriminant changes
2018-08-25 11:07:21 +02:00
Ralf Jung
bb5079b2bf
rustup
2018-08-24 19:49:57 +02:00
Ralf Jung
42bce6cb36
rustup
2018-08-24 17:44:04 +02:00
Ralf Jung
2ee4aac62f
fix leaks with -Zmiri-start-fn
2018-08-24 16:45:08 +02:00
Ralf Jung
1a4ad2bb9f
update for miri engine: new function handling, new static handling, fixed leaks
2018-08-24 16:45:08 +02:00
Ralf Jung
68194180a8
fix type renaming
2018-08-23 09:29:27 +02:00
Ralf Jung
ee7f22245d
Merge remote-tracking branch 'origin/master'
2018-08-20 18:57:48 +02:00
Ralf Jung
1a23b3c313
rustup
2018-08-20 16:27:23 +02:00
Ralf Jung
6203bf445f
update for rustc memory changes; fix (un)init intrinsic for ZST
2018-08-18 11:59:28 +02:00
Ralf Jung
ea27e46a38
fix compilation after rustc change
2018-08-17 09:36:53 +02:00
Ralf Jung
c424e21692
update for memory signedness removal; test some float casts
2018-08-16 11:35:38 +02:00
Ralf Jung
259cc6e3dc
rustup for big refactor; kill most of validation
2018-08-16 10:30:43 +02:00
Ralf Jung
1179d4f8a4
fix int ptr ops on 32bit
2018-08-14 20:25:56 +02:00
Ralf Jung
04b925135d
fix modulo logic
2018-08-14 20:10:25 +02:00
Ralf Jung
2b40d39c1e
support computing the remainder of a ptr, if covered by alignment
2018-08-14 20:10:25 +02:00
Ralf Jung
1fbf998b65
Fix remaining windows hooks
2018-08-14 19:47:41 +02:00
Ralf Jung
e10d83c8bb
fix windows hooks
2018-08-14 18:52:13 +02:00
Ralf Jung
ad5403e2e5
fix layout in discriminant_value
2018-08-14 15:58:49 +02:00
Ralf Jung
f0070fca1e
remove unnecessary features
2018-08-14 09:35:31 +02:00
Oliver Schneider
7b4402746f
Add comments explaining why we do something complex for (un)init
2018-08-08 10:34:49 +02:00
Oliver Schneider
be91aea0fa
Rustup
2018-08-07 15:22:11 +02:00
Ralf Jung
3783cebe80
remove dependency on lazy_static and regex by getting rid of some dead validation hack
2018-08-02 12:16:09 +02:00
Ralf Jung
ff3efb4e04
clarify error message when sysroot was not found
2018-07-30 14:49:01 +02:00
Ralf Jung
bb6e7c8243
Merge branch 'master' into sanity_checks
2018-07-30 08:51:34 +02:00
Ralf Jung
f6d4814fb3
detect another printing function for nicer error
2018-07-26 17:31:00 +02:00
Ralf Jung
851f2ab98e
test cargo miri
output
2018-07-26 16:43:51 +02:00
Ralf Jung
e849fa47fb
make miri compile again
2018-07-26 11:21:49 +02:00
Oliver Schneider
53114e3b36
Update to rustc sanity check branch
2018-07-26 11:21:49 +02:00
Oliver Schneider
b055ff03f1
Produce the exit codes that compiletest expects
2018-07-25 17:28:16 +02:00
Ralf Jung
f9a8d2618e
fix for latest rust nightly
2018-07-16 22:26:32 +02:00
Ralf Jung
e1a3b9606e
TLS on Windows
2018-07-16 11:42:46 +02:00
Ralf Jung
216b8f7407
shim some Windows functions
2018-07-16 10:27:19 +02:00
Ralf Jung
5be8bd987d
Test some new capabilities we gained from a rustc update
2018-07-15 21:25:20 +02:00
Ralf Jung
60d18dbf87
handle all foreign items like we handle C ABI shims
2018-07-15 21:03:52 +02:00
Ralf Jung
30185d09f6
make sure we show error messages even when we cannot show span
2018-07-15 11:40:57 +02:00
Ralf Jung
a2f4d84f73
Merge branch 'master' into eq-hash
2018-07-13 08:29:42 +02:00
Ralf Jung
0e0f52df75
Merge branch 'master' into start-fn
2018-07-11 21:30:24 +02:00
Ralf Jung
e5de51a322
use -Zmiri-start-fn as a clue to REQUIRE the lang item to be present
2018-07-11 20:25:27 +02:00
Ralf Jung
dd7cc47e5c
document -Zmiri-start-fn; make its logic more clear
2018-07-11 19:39:09 +02:00
Ralf Jung
197b75764c
without aux builds, we don't need to set always-encode-mir any more
2018-07-11 19:36:45 +02:00
Ralf Jung
7023126094
stop producing binaries
2018-07-11 19:36:45 +02:00
bjorn3
52bf4732fd
Fix some clippy lints
2018-07-10 17:32:38 +02:00
bjorn3
f321593655
Workaround for rustc bug
2018-07-10 17:20:07 +02:00
Alexander Regueiro
5b7bb32b0e
Rustup
2018-07-02 17:00:36 +01:00
Oliver Schneider
e1dbbe538f
Rustup
2018-07-01 16:01:42 +02:00
Dylan MacKenzie
5a7f4412ee
Implement Eq
and Hash
for MemoryData and Evaluator
...
In order to implement infinite loop detection while executing MIR, both
the implementor of `Machine` (`Evaluator`) and its associated type
(`MemoryData`), must implement `Eq` and `Hash`. This PR adds the
required trait implementations.
It's possible that the `Hash` implementations need to be improved; only
the `env_vars` field of `Evaluator` and the `thread_local` field of
`MemoryData` are actually being hashed. Omitting fields from a `Hash`
implementation is not incorrect, but could lead to collisions if the
ignored fields are changing constantly. Perhaps I should instead derive
`Hash` on a few more fields related to MIR validation?
2018-06-29 17:50:57 -07:00
Mateusz Mikuła
d4b98b221d
Rusutp
2018-06-29 14:10:57 +02:00
bjorn3
d1de6781e8
Add missing pub
2018-06-12 07:30:29 +02:00
bjorn3
b04391c565
Split create_ecx out of eval_main
2018-06-11 18:51:40 +02:00
bjorn3
60669cbdfd
Rustup to rustc 1.28.0-nightly ( 2a0062974
2018-06-09)
2018-06-10 11:23:56 +02:00
bjorn3
94754de600
Convert legitimate failing errors to the new error format
2018-06-05 18:08:18 +02:00
Oliver Schneider
e1734470e7
Reenable the rustc tester
2018-06-03 13:08:51 +02:00
Oliver Schneider
675587280f
Update cargo-miri
2018-06-03 13:08:51 +02:00
Oliver Schneider
cec51f8513
Use correct bit size when reading usize values
2018-06-03 13:08:51 +02:00
Oliver Schneider
8284b4e912
to_u64
and to_bytes
are horribly easy to use wrongly.
2018-06-03 13:08:51 +02:00
Oliver Schneider
77c8582031
align_offset
intrinsic is now a lang item
2018-06-03 13:08:51 +02:00
Oliver Schneider
1d9c56ddf4
TlsKey is messy because it changes types between systems
2018-06-03 13:08:51 +02:00
Oliver Schneider
062be7c047
Comparing non-pointer-size types should be possible
2018-06-03 13:08:51 +02:00
Oliver Schneider
9655aaf3aa
Comparing Scalar's with differend defined
values is false
2018-06-03 13:08:51 +02:00
Oliver Schneider
1bd088a96c
memcmp
returns i32
2018-06-03 13:08:51 +02:00
bjorn3
4143922d1d
Partial rustup
2018-06-03 13:08:51 +02:00
bjorn3
1437a975d6
s/allocate_cached/allocate_bytes
2018-06-03 13:08:51 +02:00
bjorn3
98802769a1
Rustup to rustc 1.28.0-nightly ( a3085756e
2018-05-19)
2018-06-03 13:08:51 +02:00
Oliver Schneider
601673d06f
trans -> codegen_backend
2018-06-03 13:08:51 +02:00
bjorn3
b906ce84ec
Rustup to rustc 1.28.0-nightly ( 952f344cd
2018-05-18)
2018-06-03 13:08:51 +02:00
bjorn3
574aa3bc42
Rustup to rustc 1.27.0-nightly ( ff2ac35db
2018-05-12)
2018-06-03 13:08:51 +02:00
Oliver Schneider
20c2e0bede
Test miri on mac os
2018-05-11 11:29:18 +02:00
bjorn3
8d6a893a4a
Rustup to 1.27.0-nightly ( acd3871ba
2018-05-10)
2018-05-11 09:38:13 +02:00
Oliver Schneider
27fe263669
Move back to a normal folder structure
2018-05-09 14:37:00 +02:00