Aaron Hill
8936d67e7f
Delegate to the actual panic runtime crate
2019-11-19 10:11:25 -05:00
Ralf Jung
82374ad9bd
comments and slight refactoring
2019-11-19 14:51:08 +01:00
Aaron Hill
08d3fbc76b
Support unwinding after a panic
...
Fixes #658
This commit adds support for unwinding after a panic. It requires a
companion rustc PR to be merged, in order for the necessary hooks to
work properly.
Currently implemented:
* Selecting between unwind/abort mode based on the rustc Session
* Properly popping off stack frames, unwinding back the caller
* Running 'unwind' blocks in Mir terminators
Not yet implemented:
* 'Abort' terminators
This PR was getting fairly large, so I decided to open it for review without
implementing 'Abort' terminator support. This could either be added on
to this PR, or merged separately.
2019-11-17 08:34:25 -05:00
Ralf Jung
5345636f37
use new isize_max method in FS accesses; also check full buffers for validity
2019-11-17 09:54:09 +01:00
bors
9f1aec34e1
Auto merge of #1055 - RalfJung:panic-stub, r=RalfJung
...
minimal rustup for panic changes
Main patch by @Aaron1011
2019-11-17 08:21:42 +00:00
Ralf Jung
c790317eb9
remove no-longer-needed zero checks
2019-11-14 10:30:00 +01:00
bors
09b0a8a813
Auto merge of #1022 - christianpoveda:fix-fd-access, r=RalfJung
...
Fix unchecked memory access for files
This PR takes care of two problems:
- It uses `Memory::(read|write)_bytes` to guarantee that memory accesses are checked (Fixes: https://github.com/rust-lang/miri/issues/1007 )
- It removes the `(get|remove)_handle_and` methods which were a little bit cumbersome to use. In particular `remove_handle_and`, because we were using it to avoid borrowing issues before the `Evaluator::memory` field was public.
@RalfJung @oli-obk
2019-11-13 22:58:24 +00:00
Christian Poveda
4baef7120a
Fix maximum isize
value for target
2019-11-13 14:45:00 -05:00
Christian Poveda
edd0157069
Cap count
twice
2019-11-13 11:57:20 -05:00
Steven Gu
ca983f5f80
Implments intrinsics::copysignf32
and intrinsics::copysignf64
.
2019-11-13 17:41:09 +08:00
Aaron Hill
cf5b53e52f
Rustup for panic changes
...
This gets Miri working again, but doesn't actually implement unwinding
2019-11-12 19:52:15 -05:00
Christian Poveda
6e37f2f3e1
Cap count
2019-11-09 15:15:52 +01:00
Christian Poveda
10b93730d3
Fix merge conflicts
2019-11-09 10:42:45 +01:00
Ralf Jung
37b1190def
rustup
2019-11-08 22:07:52 +01:00
Christian Poveda
4bbaa72dc9
Use TryFrom instead
2019-11-07 20:50:16 +01:00
Christian Poveda
f910ea135c
Avoid using as
cast
2019-11-05 16:47:24 -05:00
Christian Poveda
56c5e53553
Handle host's usize
correctly
2019-11-04 09:38:21 -05:00
Christian Poveda
d0b4407b25
Fix casts for count
check
2019-11-03 10:04:00 -06:00
Ralf Jung
955a26fb08
calling panic_if_uninhabited is not actually UB
2019-11-03 15:39:03 +01:00
bors
4f7171585f
Auto merge of #961 - rust-lang:exact_div_reuse, r=RalfJung
...
Use the upstream `exact_div` implementation
introduced in https://github.com/rust-lang/rust/pull/63810
2019-11-03 09:16:55 +00:00
Ralf Jung
5a5fa15382
style
2019-11-03 10:03:30 +01:00
Oliver Scherer
7a39460e24
Use the upstream exact_div
implementation
2019-11-03 09:34:48 +01:00
Ralf Jung
ddb1fc9205
store scalars where appropriate
2019-11-02 11:50:21 +01:00
Ralf Jung
15ae234a42
rustup for span in intrinsic emulation
2019-10-30 10:16:58 +01:00
Christian Poveda
06ef77bfef
Check for usize to i64 overflows
2019-10-28 16:44:18 -05:00
Christian Poveda
122549fd09
Simplify read
logic
2019-10-26 09:03:45 -05:00
Christian Poveda
d7967f6b05
Drop files explicitly when closing them
2019-10-26 08:54:02 -05:00
Christian Poveda
260b463bb0
Clean file handling functions
2019-10-24 09:34:48 -05:00
Ralf Jung
c87f106cac
update comments and some tweaks
2019-10-24 10:27:14 +02:00
Ralf Jung
cf9340113e
rustup: more flexible write_bytes avoids allocations and removes itertools dependency
2019-10-24 10:15:30 +02:00
Christian Poveda
fb4cb5bf4a
Make size error distinguishable from other errors
2019-10-22 16:57:07 -05:00
Christian Poveda
be415dbeda
Use new write_bytes method
2019-10-22 11:44:49 -05:00
Ralf Jung
db949af8ed
fix field index
2019-10-22 10:43:16 +02:00
Ralf Jung
2690f5948a
rustup: fix for write_bytes and new union rules
2019-10-22 10:13:11 +02:00
Christian Poveda
72bd25de83
Fix merge conflicts
2019-10-21 08:49:49 -05:00
Ralf Jung
d9aa20fb31
add some missing trailing full stops that slipped through review
2019-10-21 13:24:56 +02:00
Christian Poveda
8a8fa53a5d
Transform the last error place to an immediate instead
2019-10-20 07:55:26 -05:00
Christian Poveda
619ccf3834
Rename set_last_error_from_io_result
2019-10-20 07:55:25 -05:00
Christian Poveda
338e51aa48
Rename consume_result
2019-10-20 07:53:55 -05:00
Christian Poveda
ed776f67ba
Change last_error to a place
2019-10-20 07:42:59 -05:00
Christian Poveda
4232939319
Move last error functions to helpers
2019-10-20 07:42:59 -05:00
Ralf Jung
88c88530ec
use expect_none and unwrap_none where it makes sense
2019-10-20 12:20:48 +02:00
Ralf Jung
e574c77aa2
audit our bounds checks
2019-10-19 12:39:02 +02:00
Christian Poveda
85941c7249
Rename write/read os string functions
2019-10-18 09:49:56 -05:00
Christian Poveda
68fec4b3fe
Use conditional compilation properly and work with OsStr
s instead
2019-10-18 09:49:56 -05:00
Christian Poveda
1241abbec4
Change helper functions to read/write
2019-10-18 09:49:55 -05:00
Christian Poveda
61da8b8428
Add OsString from/to bytes helper functions
2019-10-18 09:47:19 -05:00
Ralf Jung
5481afbaf6
cleanup now that borrow checker knows memory is a field
2019-10-18 11:33:12 +02:00
Yuki Okushi
a353e90eed
Use memory field instead of memory()
2019-10-18 11:11:50 +09:00
bors
358cfd290c
Auto merge of #996 - christianpoveda:unsup-wo-isolation, r=RalfJung
...
Add function to error with enabled isolation
Fixes https://github.com/rust-lang/miri/issues/986
r? @RalfJung
2019-10-16 08:17:57 +00:00