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
Oliver Schneider
52599adf27
Miri core has moved to rustc::mir::interpret
2017-10-06 17:13:59 +02:00
king6cong
6221bbc5a7
update trans_fulfill_obligation call signature
2017-09-30 14:55:16 +08:00
Ralf Jung
a8980fd5e8
use exchange_malloc lang item for Box statements
2017-09-25 15:55:21 +02:00
Ralf Jung
1ad9709e00
get rid of ad-hoc inhabitedness test
2017-09-22 13:24:55 +02:00
Ralf Jung
8509dbbafe
validation: allow undef integers and raw pointers, as a crude work-around
2017-09-16 12:08:26 +02:00
Ralf Jung
2ea6663440
validation: check that int, float etc. are not undef
2017-09-16 11:45:56 +02:00
Oliver Schneider
ec5820c273
Use rustc's APFloat impl instead of interpreter host floats
2017-09-15 15:06:27 +02:00
Oliver Schneider
8cbfbf77f8
Remove #[linkage(foo)]
statics from core miri
2017-09-15 13:03:07 +02:00
Ralf Jung
9db9308a79
Storage{Live,Dead} in generators got fixed
2017-09-15 08:58:12 +02:00
Ralf Jung
91d9b83db2
validation: remove a hack that is no longer necessary
2017-09-14 10:00:37 +02:00
Ralf Jung
59a329d4f7
use catch expression to handle the 'release undef' problem slightly better
2017-09-13 15:46:53 +02:00
Ralf Jung
bac89ae1d8
enable validation for a bunch of more tests
2017-09-13 15:46:53 +02:00
Ralf Jung
aa578de018
identify write locks by lvalues, not regions
...
This makes a new compile-fail test pass.
2017-09-13 14:37:31 +02:00
Oliver Schneider
2cf984d76e
This is unreachable code and it should never ever be reachable even in the future
2017-09-13 14:21:07 +02:00
Oliver Schneider
c47ee6b521
Rustup part 2/2
2017-09-13 13:46:54 +02:00
Ralf Jung
79993e63a0
rustup (part 1/2)
2017-09-13 12:58:25 +02:00
Ralf Jung
a1f71af5b2
restrict cur_frame visibility
2017-09-09 11:37:00 +02:00
Ralf Jung
41f228824f
fix warnings in tests; update validation whitelist
2017-09-09 11:18:02 +02:00
Ralf Jung
1591977432
clean up suspensions when function ends
2017-09-09 11:18:02 +02:00
Oliver Schneider
bc2f9259e6
rustup
2017-09-09 11:18:02 +02:00
Oliver Schneider
e9315a60e4
Rustup
2017-09-06 10:10:15 +02:00
Ralf Jung
9a273e0192
update backtrace to newly released version
2017-09-04 12:37:42 +02:00
Ralf Jung
10101dd9f4
rename variables to match new type name
2017-09-04 12:13:05 +02:00
David Renshaw
bb2bfb4353
update for upstream rename: CodeExtent -> Scope
2017-09-03 22:39:03 -04:00
Oliver Schneider
58a59e9d23
Rustup (generator support)
2017-08-30 13:16:27 +02:00
Oliver Schneider
506a5c7910
Mir optimizations treat single variant enums as structs
2017-08-29 12:26:20 +02:00
Oliver Schneider
88fc45b37c
Get some more rustc tests working
2017-08-29 11:58:22 +02:00
Oliver Schneider
206f0bd6df
Fix panic in subslice patterns of arrays ( fixes #276 )
2017-08-29 10:03:00 +02:00
Oliver Schneider
dd5b0100f3
Merge remote-tracking branch 'origin/master' into memory
2017-08-28 16:13:09 +02:00
Oliver Schneider
2f0dcfba1d
Simplify write_value_to_ptr
2017-08-28 16:06:49 +02:00
Oliver Schneider
129b914bdc
int_align
has no dynamic error case
2017-08-28 15:58:58 +02:00
Oliver Schneider
e53e9b9e63
Deduplicate writing null case of struct wrapped nullable pointers
2017-08-28 15:27:50 +02:00
Oliver Schneider
ac7dfcac38
Fix #313 by correctly copying relocations when doing overlapping copies
2017-08-28 14:08:55 +02:00
Oliver Schneider
1fce886ac3
Make some things public that are required by priroda
2017-08-28 14:08:10 +02:00
Oliver Schneider
3464401576
Merge branch 'master' into memory
2017-08-26 23:13:55 +02:00
David Renshaw
8b5f22c3fd
use rustc version of fulfill_obligation now that we can
2017-08-26 13:48:59 -04:00
Ralf Jung
2307d6fc5b
Merge branch 'master' into memory
2017-08-26 13:51:13 +02:00
Ralf Jung
8ce6b06d52
Remove specialize float/bool read/write methods from memory
...
Notice that the write methods were previously unused, so if this makes us handle some things incorrectly, they probably were already broken
2017-08-25 19:33:12 +02:00
Ralf Jung
b1ca65447a
refactor memory write API to match read API
2017-08-25 19:08:04 +02:00
Ralf Jung
f036fe0d32
refactor memory read API: provide only size-based, no type-based methods
2017-08-25 16:20:13 +02:00
Ralf Jung
8539728607
memory: make sure we check non-NULL/undef even fore 0-sized accesses
2017-08-25 14:41:59 +02:00
Oliver Schneider
fad1bc8b20
Merge branch 'master' into drop
2017-08-24 23:52:36 +02:00
Oliver Schneider
19018852c3
Simplify dropping by reusing eval_fn_call
2017-08-24 16:04:50 +02:00
Oliver Schneider
110d50e7f9
Merge branch 'master' into libstd
2017-08-24 15:30:35 +02:00
Oliver Schneider
9ede346ee2
Refactoring: Couple values and types into an object when passed around together
2017-08-24 14:42:42 +02:00
Ralf Jung
e332ab9b13
Handle closures in get_field_ty
...
Fixes #304
2017-08-24 13:34:05 +02:00
Oliver Schneider
f75dd90961
Also reuse function pointer shims and drop glue from rustc
2017-08-23 17:46:36 +02:00
Oliver Schneider
7b8e2c772d
Rustup (Clone
is now a builtin trait)
2017-08-23 17:24:38 +02:00
Ralf Jung
7e5d971c56
fix warnings; make test suite pass again
2017-08-12 09:45:44 -07:00
Ralf Jung
1326aed02c
rustfmt
...
Except for error.rs, the result there looks rather ugly
2017-08-10 08:48:41 -07:00
Ralf Jung
8e8c9c862c
turns out we can enable this sanity check now
2017-08-09 22:32:13 -07:00
Ralf Jung
5e018b1deb
analyzing hashmap.rs uncovered a deeper problem; disable validation there for now
2017-08-09 15:49:47 -07:00