Commit Graph

201 Commits

Author SHA1 Message Date
Christian Poveda
b0c7625dd1
add statx shim for linux 2019-12-22 11:46:02 -05:00
Ralf Jung
94732aaf7b rename helper methods a bit 2019-12-04 10:43:36 +01:00
Ralf Jung
ab000997db use throw_machine_stop macro 2019-12-03 23:31:44 +01:00
Aaron Hill
a418fe9826
Rustup for BodyCache changes 2019-12-02 20:21:03 -05:00
Ralf Jung
d43e394c46 fix init_allocation_extra 2019-12-02 16:04:31 +01:00
Ralf Jung
b2cddd27bd better span for functions whose frame we push 'manually' 2019-12-02 16:04:31 +01:00
Ralf Jung
b91383b068 implement proper panicking for other MIR assertions
Requires generalizing the call_function helper to arbitrary Immediate arguments
2019-12-02 16:04:31 +01:00
Ralf Jung
8a36d12d36 implement proper panicking for failed index check 2019-12-02 16:04:31 +01:00
Ralf Jung
dcdd68b936 also indicate abort via new MachineStop variant 2019-12-02 09:13:58 +01:00
Ralf Jung
f3c00a447c use new MachineStop error variant 2019-12-02 09:05:35 +01:00
Ralf Jung
4a4886c0f0 avoid injected_panic_runtime which is going away 2019-11-29 21:37:59 +01:00
Ralf Jung
fe76d33506 Add and use helper function for calling a machine function and passing it some arguments 2019-11-29 09:23:29 +01:00
Ralf Jung
824328c6d5 adjust for goto_block refactoring 2019-11-27 08:34:15 +01:00
Aaron Hill
a328683c4a
Add acos, asin, and atan foreign functions
I copied the tests from the docs pages
2019-11-21 17:33:30 -05:00
Aaron Hill
2750f60d4f
Update panic runtime comment 2019-11-19 15:33:14 -05:00
Aaron Hill
e02dc4af4b
Re-add comment 2019-11-19 15:31:37 -05:00
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