Ralf Jung
c8450bda4f
support integers that can be cast to pointers in in-bounds offset operation
2019-07-03 10:47:28 +02:00
Ralf Jung
c3da843ca0
we don't need zero-sized freeze-sensitive visiting
2019-07-03 10:47:28 +02:00
Ralf Jung
12b8d4366c
avoid integer overflow in ptr-to-int cast
2019-07-03 10:47:28 +02:00
Ralf Jung
c6e4f760a2
allow dangling ptr-to-int casts; use force_bits for ptr comparison
2019-07-03 10:47:28 +02:00
Ralf Jung
457c823765
only treat integer operations as such
2019-07-03 10:47:28 +02:00
bors
93f5892962
Auto merge of #815 - RalfJung:memory-audit, r=RalfJung
...
don't call Memory::get without checking the pointer first
Also avoid Memory::get if we just need to know align/size.
I audited all uses of `alloc_id`; the rest should be fine (and we can kill a bunch of them once https://github.com/rust-lang/rust/pull/62257 lands).
2019-07-01 20:59:17 +00:00
Ralf Jung
7b702b9258
move find_fn (which is not specific to foreign items) out of foreign_items
2019-07-01 00:28:31 +02:00
Ralf Jung
4135441137
don't call Memory::get without checking the pointer first; avoid Memory::get if we just need to know align/size
2019-07-01 00:24:56 +02:00
Ralf Jung
cb6d4f0c9a
test even more size-alignment combinations. found a bug in libstd!
2019-06-30 21:23:48 +02:00
Ralf Jung
709b474859
fix minimal alignment for system allocation functions
2019-06-30 21:10:47 +02:00
Ralf Jung
e960270662
add some tracing to intptrcast
2019-06-30 21:10:47 +02:00
Ralf Jung
b8879f3d8c
move shims (foreign items and intrinsics) into submodule
2019-06-30 15:35:28 +02:00
Ralf Jung
11457a4ad9
fix comparing function pointers with intptrcast
2019-06-30 11:21:31 +02:00
bors
1ec279f290
Auto merge of #801 - RalfJung:num_cpus, r=RalfJung
...
support num_cpus crate and test that
Also make some magic numbers into proper global constants.
2019-06-30 08:42:25 +00:00
Ralf Jung
019ad4bab4
move constants to machine.rs
2019-06-29 14:37:41 +02:00
Ralf Jung
c7bf9064f7
comment on STACK_ADDR
2019-06-29 14:34:08 +02:00
Ralf Jung
0fac868685
support num_cpus and test that
2019-06-29 14:34:08 +02:00
Ralf Jung
c1645f6c65
don't compute residue twice
2019-06-29 14:31:54 +02:00
Ralf Jung
9b66527075
more sensible slack
2019-06-29 14:31:54 +02:00
Ralf Jung
c0b44ca98c
tweak inttoptr allocation behavior
...
- Make `align_addr` not offset by `align` for no reason.
- Add some random slack between allocations to give them the chance to not be aligned.
2019-06-29 14:31:54 +02:00
Ralf Jung
67d3779b0c
move most of the stuff from lib.rs into machine.rs, and initialization + main loop into eval.rs
2019-06-29 13:48:59 +02:00
Ralf Jung
6886864862
ptr-to-int alignment sanity check
2019-06-28 09:12:11 +02:00
Christian Poveda
7fbf8e53a2
Fix alignment of base addresses
2019-06-26 09:08:28 -05:00
Christian Poveda
792d665a1f
Fix merge conflicts
2019-06-25 00:57:33 -05:00
Christian Poveda
84cfbb01b7
Reorganize MemoryExtra and AllocExtra structures
2019-06-24 17:18:25 -05:00
Christian Poveda
2861ceb2fa
Rename new fields and move rng to MemoryExtra
2019-06-24 10:03:16 -05:00
Ralf Jung
7e7b5d42ba
Apply suggestions from code review
...
Co-Authored-By: Oliver Scherer <github35764891676564198441@oli-obk.de>
2019-06-24 14:50:27 +02:00
Ralf Jung
69e8318b60
de-obfuscate ptr comparison a bit
2019-06-23 20:30:33 +02:00
Ralf Jung
4dc188a60e
adjust for refactored memory pointer checks
2019-06-23 20:19:26 +02:00
Christian Poveda
dd732e5862
Force intptrcast for binary operations
2019-06-22 09:25:16 -05:00
Ralf Jung
72c269eebe
fix compilation with latest rustc
2019-06-22 11:05:12 +02:00
Christian Poveda
fd3a291db4
Implement intptrcast methods
2019-06-21 14:55:37 -05:00
Oliver Scherer
5edb9c915f
Merge branch 'master' into master
2019-06-21 12:37:13 +02:00
Christian Poveda
17dbecfa32
Merge branch 'master' into master
2019-06-20 21:38:10 -05:00
Christian Poveda
4211d7e1a0
Update tag methods to match Machine changes
2019-06-20 16:58:57 -05:00
Ralf Jung
86868b6946
Merge branch 'master' into rustup
2019-06-20 21:37:12 +02:00
Ralf Jung
6f5529a05b
Merge branch 'master' into patch-1
2019-06-20 20:47:27 +02:00
Ralf Jung
03eff5981b
use org.rust-lang.miri folder on macOS
2019-06-20 19:45:39 +02:00
Ralf Jung
04fa38dd1b
allow some inequality comparisons between pointers and integers
2019-06-20 16:38:55 +02:00
Ralf Jung
7ce36226e6
implement and test unchecked_{add,sub,mul} intrinsics
2019-06-16 11:10:33 +02:00
Ralf Jung
fc90124489
test exact_div UB detection
2019-06-16 11:10:33 +02:00
Ralf Jung
32a2cf046f
Merge branch 'master' into foreign_math_functions
2019-06-16 10:11:32 +02:00
soc
a561f949ad
Fix project dirs path
...
ProjectDirs::from("miri", "miri", "miri")
would get you `miri\miri` on Windows and `miri.miri.miri` on macOS.
I'm assuming here that your intention was to have only a `miri` directory on every OS.
2019-06-15 17:03:16 +02:00
Lzu Tao
fd0dccd4b1
Fix wrong lifetime of TyCtxt
...
Rustup rust-lang/rust#61817
2019-06-15 02:34:11 +07:00
Ralf Jung
34b0922cec
fix running a Miri that was built in bootstrap
2019-06-14 12:09:43 +02:00
Ralf Jung
ac2f6cbcde
change sysroot check to print the output in case of an error
2019-06-14 11:16:39 +02:00
Oliver Scherer
4db0eea010
Fix indentation
2019-06-14 10:44:08 +02:00
Kenny Goodin
46b6a3fb7f
Add more missing math functions
...
Add missing functions for atan2, cosh, sinh, and tan.
Also add f32 calls and tests for cbrt and hypot.
2019-06-13 22:28:22 -04:00
Ralf Jung
ad0c941547
rustup for lifetime refactorings
2019-06-13 09:18:03 +02:00
Kenny Goodin
535914e3dc
Implement cbrt and hypot function calls
...
Test cases are added to `tests/run-pass/intrinsics-math.rs`
2019-06-12 15:44:30 -04:00