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
Christian Poveda
f7c6e0efbe
Do additional bounds checks
2019-10-19 15:49:00 -05:00
Christian Poveda
ab059671cb
Change comparison order for clarity
2019-10-19 14:13:49 -05:00
Ralf Jung
324fed316f
print sysroot without any escaping
2019-10-19 16:38:37 +02:00
Ralf Jung
e574c77aa2
audit our bounds checks
2019-10-19 12:39:02 +02:00
Christian Poveda
0201cc5587
Fix writing errors
2019-10-18 15:28:06 -05: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
Ralf Jung
2967d0d13a
better error when using cargo-miri in a workspace
2019-10-16 22:03:44 +02: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
bors
49cab51ac3
Auto merge of #987 - christianpoveda:check-unsupported-fs-flags, r=RalfJung
...
Error when there is an unsupported flag for opening a file
@RalfJung this is my attempt to check for undesired flags. I also changed fcntl to error when doing any other action besides getting the flags for a fd
2019-10-16 07:52:12 +00:00
Christian Poveda
24872230dc
Check that access mode flags only use the first two bits
2019-10-15 08:01:07 -05:00
Christian Poveda
78311a7132
Add function to error with enabled isolation
2019-10-15 07:33:14 -05:00
Ralf Jung
4ba63fb0fc
explain our shell encoding
2019-10-15 11:03:32 +02:00
bors
42c1e779cb
Auto merge of #980 - JOE1994:master, r=RalfJung
...
change cargo-miri.rs to fix issue #978
In Windows 10, there was an issue with building MIRI locally and getting it running,
due to unpredictable backslash escaping issues in paths.
I added a code snippet that would only be compiled in Windows OS, which replaces all backslashes in paths to slashes.
This fix should only affect Windows users.
Building and testing MIRI locally now works fine after the fix.
![miri_result_after_fix0](https://user-images.githubusercontent.com/10286488/66260998-344abc80-e794-11e9-9d7c-b4ef098443de.PNG )
Fixes https://github.com/rust-lang/miri/issues/978
2019-10-15 08:22:26 +00:00
bors
d902a11575
Auto merge of #975 - christianpoveda:clock-shim, r=RalfJung
...
Add clock_gettime shim
r? @oli-obk
I think there is no way to do proper testing of this other than checking that miri does not crash when calling `clock_gettime`.
2019-10-15 07:36:42 +00:00
YOUNGSUK_KIM
65fd00665e
remove unnecessary line break
2019-10-14 22:37:54 -04:00
YOUNGSUK_KIM
e06ce728ca
Ralf Jung's great idea!
2019-10-14 20:57:57 -04:00
Christian Poveda
f9c768864a
Use places instead of ptrs to write packed immtys
2019-10-14 16:00:40 -05:00
Christian Poveda
50618b55cd
Error on negative times
2019-10-13 16:06:37 -05:00
Christian Poveda
f76f8ce63b
Correct fcntl behavior
2019-10-12 20:12:26 -05:00
Christian Poveda
508df227e5
Group libc helper functions
2019-10-12 19:48:18 -05:00
Ralf Jung
19fb53e8a3
better debugging for sysroot check
2019-10-12 18:11:44 +02:00
Christian Poveda
d73fae1b28
Remove F_SETFD command
2019-10-11 12:20:06 -05:00
Christian Poveda
a1c6797c5c
Error when there is an unsupported flag
2019-10-11 11:42:12 -05:00
Christian Poveda
2cbf4afa99
Split write_c_ints
into less specific helper functions
2019-10-11 11:41:11 -05:00
Christian Poveda
87b210df6c
Fix sign when number of seconds is zero
2019-10-11 11:39:32 -05:00
Christian Poveda
8f4d185d1b
Move time related functions to its own module
2019-10-11 11:39:31 -05:00
Christian Poveda
b8ee90d22e
Throw error instead of panicking for unfittable bits
2019-10-11 11:38:24 -05:00
Christian Poveda
9f24c12624
Add helper function to write structs
2019-10-11 11:38:22 -05:00
Christian Poveda
b7863f2509
Add gettimeofday shim for macOS
2019-10-11 11:36:33 -05:00
Christian Poveda
7a6df8504f
Get size of integers using libc
2019-10-11 11:36:33 -05:00
Christian Poveda
adfa2eb062
Return negative times when the current time is before the unix epoch
2019-10-11 11:36:33 -05:00
Christian Poveda
fcf04b5425
Reduce size of nanoseconds
2019-10-11 11:36:33 -05:00
Christian Poveda
aa3e9703d1
Add clock_gettime shim
2019-10-11 11:36:33 -05:00
Christian Poveda
003b257f87
Change error handling style for consistency
2019-10-11 08:20:32 -05:00
Christian Poveda
60cf06a03f
Use existing tcx instead
2019-10-11 04:20:18 -05:00
Christian Poveda
67ea454647
Correct style of comments
2019-10-11 04:17:43 -05:00
Christian Poveda
1c64f29811
Add comment for the flag diff check
2019-10-11 03:55:18 -05:00
Christian Poveda
12040aae88
Add comment explaining why buffer isn't overflowed
2019-10-11 03:43:20 -05:00
Christian Poveda
c8df0171e8
Move functions to eval libc constants to helpers
2019-10-11 01:53:31 -05:00
Christian Poveda
976c976f09
Rename shims::io to shims::fs
2019-10-11 01:49:28 -05:00
YOUNGSUK_KIM
610dbdd562
fixed cargo-miri bug for windows users
2019-10-10 11:03:20 -04:00
Christian Poveda
187361996f
Add errno_location shim for MacOS
2019-10-08 10:22:39 -05:00
Christian Poveda
ffc47de1b9
Add unlink shim to delete files
2019-10-08 08:50:58 -05:00
bors
9d03dd6364
Auto merge of #977 - christianpoveda:last-error-ptr, r=oli-obk
...
Move last error into memory
These changes move the `Evaluator::last_error` into miri's memory and implement the `__errno_location()` shim (which is used by the file handling functions when they fail).
2019-10-08 13:21:05 +00:00
Christian Poveda
459c65a4f9
Add method to consume io::Error
2019-10-08 08:18:51 -05:00
Christian Poveda
887d748114
Add __errno_location shim
2019-10-07 09:15:37 -05:00
Christian Poveda
11d7be9c6f
Move last_error into memory
2019-10-07 09:15:32 -05:00
Christian Poveda
905c70cfa5
Rustfmt
2019-10-07 09:12:30 -05:00
YOUNGSUK_KIM
2b3b865c28
change cargo-miri.rs to fix issue #978
2019-10-05 17:11:09 -04:00
Nicolas
0c4003631d
Add missing atomic_fence intrinsics as nops
...
Fixes #972
2019-10-05 06:12:37 -03:00
Christian Poveda
6c36a8c949
Return earlier when reading/writing 0 bytes
2019-10-02 09:12:03 -05:00
Christian Poveda
f5022b19d3
Fix dangling pointer bug for zero-sized reads
2019-10-02 08:43:23 -05:00
Christian Poveda
78e0d309ef
Avoid early return after handles are removed
2019-10-01 14:07:45 -05:00
Christian Poveda
5a05c04c85
Correct name of each shim when erroring
2019-10-01 11:14:50 -05:00
Christian Poveda
cd495cb04f
Add file writing capabilities
2019-10-01 11:10:37 -05:00
Christian Poveda
d0509d719c
Add docs for helper functions
2019-10-01 10:31:04 -05:00
Christian Poveda
50be5a83c5
Remove return argument when fd is not found
2019-10-01 09:28:48 -05:00
Christian Poveda
644467c570
Add methods to handle invalid fides
2019-09-30 15:54:43 -05:00
Christian Poveda
efbe798e62
Avoid buffer allocation to read files
2019-09-30 14:21:45 -05:00
Christian Poveda
775246e329
Add method to consume std::io::Result
2019-09-30 14:08:12 -05:00
Christian Poveda
03ed4123c0
Add FileHandle struct
2019-09-30 11:51:09 -05:00
Christian Poveda
b540e5d24e
Reserve fides for stdio and fix merge issues
2019-09-30 10:54:51 -05:00
bors
b625812092
Auto merge of #957 - christianpoveda:ptr-align-offset, r=RalfJung
...
Fixes for align_offset
This addresses @RalfJung's comments in https://github.com/rust-lang/miri/pull/945
2019-09-28 18:38:00 +00:00
Ralf Jung
63ea13ad0d
fix miri-rustc-tests
2019-09-28 11:00:05 -04:00
Ralf Jung
28e814ab53
rustup
2019-09-28 10:37:48 -04:00
Oliver Scherer
9fdb347ad7
Rustup to sty
-> kind
changes
2019-09-26 11:41:11 +02:00
Christian Poveda
ca3a917a6f
Enable close call for macos
2019-09-25 11:16:11 -05:00
Christian Poveda
01f64616ad
Check that the only flag change is done to enable FD_CLOEXEC
2019-09-25 11:11:20 -05:00
Christian Poveda
3726081857
Add helper function to fetch libc
constants
2019-09-25 10:49:12 -05:00
Christian Poveda
79b1f91f45
First version of file handling
2019-09-25 01:17:18 -05:00
Christian Poveda
0eed5e64de
Add chdir
shim
2019-09-24 15:50:00 -05:00
Christian Poveda
02261e4be2
Fix comments
2019-09-24 09:29:16 -05:00
Christian Poveda
e2c54e64d1
Ignore integers
2019-09-22 21:39:17 -05:00
Christian Poveda
f736636038
Throw unsupported error when alignment is not a power of two
2019-09-22 20:56:48 -05:00
Christian Poveda
0f58289b3d
fetch ERANGE value from libc
2019-09-20 11:32:07 -05:00
Christian Poveda
c0a6b5ff69
Set errno when getcwd fails
2019-09-20 03:30:55 -05:00
Christian Poveda
49275d4269
Avoid writing more bytes than necessary
2019-09-20 02:13:48 -05:00
Christian Poveda
133c2b39db
Only use getcwd without isolation
2019-09-19 10:32:18 -05:00
Christian Poveda
5cf90bc786
Add getcwd shim
2019-09-18 16:13:59 -05:00
Ralf Jung
39e2a76817
Merge remote-tracking branch 'origin/master' into rustup-retag
2019-09-18 11:22:12 +02:00
Christian Poveda
4a0b7446cf
Move truncation from the main branch
2019-09-17 13:26:12 -05:00
Christian Poveda
881929f753
Add align_offset for integers
2019-09-17 11:47:01 -05:00
Ralf Jung
130f9488d3
rustup
2019-09-17 12:31:02 +02:00
Ralf Jung
8cd215dc97
remove libstd backtrace work-around
2019-09-16 22:22:54 +02:00
bors
d0a10507e4
Auto merge of #945 - christianpoveda:ptr-align-offset, r=oli-obk
...
Use libcore's align_offset
Related issue: https://github.com/rust-lang/miri/issues/873
2019-09-16 15:52:22 +00:00
Christian Poveda
55863cb88e
Use force_ptr instead of assert_ptr
2019-09-16 10:16:06 -05:00
Ralf Jung
9e2107cef5
install ICE hook
2019-09-16 09:31:56 +02:00
Ralf Jung
1ef1d581d3
update for rustc changes
2019-09-15 23:27:58 +02:00
Santiago Pastorino
5ecb2d9356
Place projection field is now Box<[PlaceElem<'tcx>]>
2019-09-15 00:05:52 -03:00
bors
9a146243d0
Auto merge of #949 - RalfJung:ask-to-run, r=RalfJung
...
factor ask-to-run-command into helper function
2019-09-14 11:44:01 +00:00
Ralf Jung
78cfdcead2
temporarily enable backtrace feature
2019-09-14 13:06:20 +02:00
Ralf Jung
b245cb616e
factor ask-to-run-command into helper function
2019-09-13 10:39:36 +02:00
Christian Poveda
fa20338c9a
Use str::from_utf8 instead
2019-09-12 09:36:31 -05:00
Christian Poveda
62280b4b11
Use libcore's align_offset
2019-09-11 11:09:56 -05:00
Oliver Scherer
e479ab2640
Rustup
2019-09-06 11:10:24 +02:00
Christian Poveda
4afa3bccb0
Rewrite alloc_env_var
2019-08-29 15:03:10 -05:00
Christian Poveda
814fe99516
Add cargo-miri test for no isolation
2019-08-29 10:13:02 -05:00
Christian Poveda
9c54368cca
Exclude TERM env var by default
2019-08-29 04:07:20 -05:00
bors
ee8afead51
Auto merge of #935 - christianpoveda:blacklist-env-vars, r=RalfJung
...
Exclude environment variables from host communication
related issue: #933
r? @RalfJung
2019-08-29 08:09:57 +00:00
Christian Poveda
abcda6dc94
Small corrections
...
Co-Authored-By: Ralf Jung <post@ralfj.de>
2019-08-29 03:08:58 -05:00
Christian Poveda
c1cec3b247
Exclude env vars using flag
2019-08-28 17:57:41 -05:00
Christian Poveda
1ae1d71938
Add -Zmiri-env-exclude flag
2019-08-28 17:57:35 -05:00
Ralf Jung
f3ff10005a
small optimization
2019-08-28 18:45:10 +02:00
Ralf Jung
79dd70fd9b
Stacked Borrows: don't read from memory during retagging
2019-08-28 18:41:30 +02:00
bors
283928ad55
Auto merge of #925 - christianpoveda:environ-shim, r=RalfJung
...
Write name and value for each env var
In order to res0lve https://github.com/rust-lang/miri/issues/756 is necessary to have the whole `"NAME=VALUE"` sequence of bytes written into memory instead of just the value.
This change does not affect the interface of the `shim::envs::EnvVars` type in any way.
r? @RalfJung @oli-obk
2019-08-27 15:59:32 +00:00
Christian Poveda
7d93cc7b5e
Add docs
2019-08-27 08:45:37 -05:00
bors
2be0db4c0b
Auto merge of #917 - RalfJung:isolation, r=oli-obk
...
change flag name: enable-communication -> disable-isolation
r? @oli-obk -- I think this is a better name for the flag but it is still somewhat clumsy. Suggestions?
2019-08-27 10:02:07 +00:00
Ralf Jung
3a68d943ba
rustup
2019-08-27 08:32:31 +02:00
Christian Poveda
ace3416cf2
Write name and value for each env var
2019-08-26 18:08:26 -05:00
Ralf Jung
c6c9276d61
bump Rust and xargo
2019-08-26 19:44:27 +02:00
Ralf Jung
97f9fb1284
change flag name: enable-communication -> disable-isolation
2019-08-23 23:29:11 +02:00
bors
631d5facba
Auto merge of #914 - christianpoveda:use-host-rng, r=RalfJung
...
Use host's rng when communication is enabled
This uses the host's randomness when the communication enabled flag is used. I am not sure about the error handling. I was thinking about fallbacking to `rand` if `getrandom` fails and also print something so the user knows miri is not using the host's rng because it failed. Let me know what you think.
Related issue: https://github.com/rust-lang/miri/issues/800 .
r? @RalfJung @oli-obk
2019-08-23 09:52:54 +00:00
Christian Poveda
f53b5b0fb4
Update -Zmiri-enable-communication docs
2019-08-20 12:22:49 -05:00
Christian Poveda
98129631b5
Use err_unsup_format instead
2019-08-20 12:20:50 -05:00
Christian Poveda
b44fd97af6
Use host's rng when communication is enabled
2019-08-19 10:43:09 -05:00
Ralf Jung
4f1c9bb607
adjust for typed binary/unary_op
2019-08-18 07:42:15 +02:00
bors
4f6f264c30
Auto merge of #909 - RalfJung:deny-warn, r=oli-obk
...
deny warnings on CI
2019-08-15 09:37:38 +00:00
Ralf Jung
f9241be734
fix warning
2019-08-15 11:24:04 +02:00
bors
c71b240f85
Auto merge of #863 - RalfJung:deref-checks, r=RalfJung
...
adjust tests for eager pointer checks on deref
The Miri side of https://github.com/rust-lang/rust/pull/63075 .
Fixes https://github.com/rust-lang/miri/issues/447 .
2019-08-15 09:11:08 +00:00
Ralf Jung
a801b0ba3f
adjust for fn rename
2019-08-15 11:01:03 +02:00
Christian Poveda
aee8f173ec
Delegate writing to emulate_foreign_item
2019-08-14 16:50:36 -05:00
Christian Poveda
41f8cfa30e
Move env shims to its own module
2019-08-14 16:30:55 -05:00
bors
1f504ea7be
Auto merge of #894 - christianpoveda:env-vars-communication, r=RalfJung
...
Enable env communication
related issue: https://github.com/rust-lang/miri/issues/800 . r? @RalfJung
2019-08-14 18:58:06 +00:00
Christian Poveda
451a09a685
Remove tcx parameter for EnvVars::alloc_env_value
2019-08-14 13:54:57 -05:00
Christian Poveda
46f902b67d
Rename export for shims::env::EnvVars
2019-08-14 11:31:29 -05:00
Christian Poveda
afc6713e41
Reorganize shims::env::EnvVars
2019-08-13 16:17:41 -05:00
Christian Poveda
67d13577aa
Move test env var to test_runner
2019-08-13 12:10:24 -05:00
Christian Poveda
666cd22fa6
Wrap hashmap for env vars in its own type
2019-08-13 11:34:43 -05:00
bors
47b227e24a
Auto merge of #906 - RalfJung:tls, r=RalfJung
...
make TLS state private to TLS module
2019-08-13 11:32:25 +00:00
Ralf Jung
95fb11d51f
make TLS state private to TLS module
2019-08-13 09:29:01 +02:00
Ralf Jung
7a9733929b
it's called RUSTC_CTFE_BACKTRACE now
2019-08-12 08:26:11 +02:00
Ralf Jung
04892d9155
typo
2019-08-10 11:33:33 +02:00
Ralf Jung
0743ed631e
clamp ldexp exponent to i16
2019-08-10 11:27:27 +02:00
Ralf Jung
3ae01a64bc
also support scalbn itself
2019-08-10 11:22:32 +02:00
Ralf Jung
5e3035b6cb
use apfloat for ldexp
2019-08-09 19:54:01 +02:00
Christian Poveda
e1d1cd191f
Use ldexp from cmath instead
2019-08-08 15:45:58 -05:00
Ralf Jung
19367fd8de
bump xargo version
2019-08-08 19:34:23 +02:00
Christian Poveda
253af9692a
Fix formatting
2019-08-07 10:50:46 -05:00
bors
b12ebfc3de
Auto merge of #895 - RalfJung:uninit, r=oli-obk
...
Revert "uninit intrinsic is gone"
This reverts commit fa290f1a48
.
Uninit is [being reinstated](https://github.com/rust-lang/rust/pull/63343 ) because it breaks some broken code.
2019-08-07 12:42:19 +00:00
Ralf Jung
455531c564
Revert "uninit intrinsic is gone"
...
This reverts commit fa290f1a48
.
Uninit is being reinstated because it breaks some broken code.
2019-08-07 10:49:36 +02:00
Christian Poveda
b731a6a15f
Add support for env communication
2019-08-06 17:40:07 -05:00
Christian Poveda
068c448832
Add communicate field to evaluator and fix formatting
2019-08-06 15:44:44 -05:00
Christian Poveda
655f9af7fe
Add flag to enable communication
2019-08-06 15:18:22 -05:00
Ralf Jung
3fe4eec37a
mention that we get the toolchain right
2019-08-06 20:52:09 +02:00
Ralf Jung
cc8d995605
go back to released xargo (the experiment is done)
2019-08-06 08:05:32 +02:00
Ralf Jung
b0cb603e3a
rustup
2019-08-05 15:49:19 +02:00
Ralf Jung
d26917a9d6
fix for latest rustc
2019-08-05 10:45:48 +02:00
bors
93e110f370
Auto merge of #886 - Aaron1011:shim/getrandom, r=RalfJung
...
Shim 'libc::getrandom' in addition to 'libc::syscall(libc::SYS_getrandom)'
2019-08-04 21:02:08 +00:00
Aaron Hill
f830a6c69e
Apply more formatting fixes
...
Co-Authored-By: Ralf Jung <post@ralfj.de>
2019-08-04 16:57:17 -04:00
Aaron Hill
8650f02bc9
Add trailing comma
2019-08-04 16:12:24 -04:00
Aaron Hill
56a9a283e7
Cleanup formatting
2019-08-04 16:12:24 -04:00
Aaron Hill
a2bdb3bb94
Shim 'libc::getrandom' in addition to 'libc::syscall(libc::SYS_getrandom)'
2019-08-04 16:12:23 -04:00
bors
96adbf65bc
Auto merge of #885 - Aaron1011:fix/f-round, r=RalfJung
...
Add misssing 'roundf32' and 'roundf64' intrinsics
2019-08-04 20:12:02 +00:00
Aaron Hill
4d3398fc62
Replace match with expect()
2019-08-04 15:49:14 -04:00
Aaron Hill
3118b9fe42
Add misssing 'roundf32' and 'roundf64' intrinsics
2019-08-04 10:25:29 -04:00
Aaron Hill
c2f681f005
Add semicolon
...
Co-Authored-By: Ralf Jung <post@ralfj.de>
2019-08-04 10:13:29 -04:00
Aaron Hill
0505868d18
Do nothing when we try to generate random data of length 0
...
This preserves compatibility with programs that pass a null pointer and
a length of zero to getrandom(), or their platform's equivalent.
2019-08-04 09:21:17 -04:00
Ralf Jung
0096a0df2a
gen_random helper: move ptr argument to front
2019-08-04 14:49:10 +02:00
bors
ed30152b52
Auto merge of #876 - RalfJung:atomic, r=RalfJung
...
check that atomics are sufficiently aligned
Fixes https://github.com/rust-lang/miri/issues/475
2019-08-04 08:55:18 +00:00
Ralf Jung
a4cc58efc6
one more place -> ptr rename
2019-08-04 10:54:07 +02:00
Ralf Jung
19add0bb75
places and pointers are not the same thing; this is a place
2019-08-04 10:52:09 +02:00
Ralf Jung
f47e58950b
check that atomics are sufficiently aligned, and add test
2019-08-04 10:30:42 +02:00
bors
843691d612
Auto merge of #882 - RalfJung:miri-rustc, r=RalfJung
...
install xargo from git temporarily
This is so that once https://github.com/japaric/xargo/pull/246 landed, we can see if that helps with https://github.com/rust-lang/rust/pull/63162 .
2019-08-04 08:26:51 +00:00
Ralf Jung
162c0ffb1f
use postfix negation instead of prefix
2019-08-04 10:14:51 +02:00
Ralf Jung
874437d717
install xargo from git temporarily
2019-08-04 10:11:45 +02:00
bors
d9d6df93a9
Auto merge of #881 - RalfJung:rustup, r=RalfJung
...
adjust for rustc changes
2019-08-03 18:56:38 +00:00
Ralf Jung
8d99e42f47
test memalign contract (rustc is fixed)
2019-08-03 20:53:42 +02:00
Ralf Jung
f65e7cd2d1
adjust for rustc changes
2019-08-03 20:31:33 +02:00
bors
d0e8850267
Auto merge of #877 - christianpoveda:ldexp-shim, r=RalfJung
...
Add shim for ldexp
Fixes https://github.com/rust-lang/miri/issues/821
r? @RalfJung
2019-08-03 16:14:20 +00:00
Christian Poveda
c4cea035e6
Formatting
2019-08-03 10:51:23 -05:00
Ralf Jung
10f46336af
set RUSTC_DEBUG_ASSERTIONS for when we are in bootstrap
2019-08-03 17:21:30 +02:00
Ralf Jung
ab22da8ce8
annotate some unwraps with better messages
2019-08-03 16:59:30 +02:00
Ralf Jung
61d8a4e101
simplify code
2019-08-03 15:01:04 +02:00
Ralf Jung
82da68c5ca
implement all ptr comparisons through integer casts
2019-08-03 15:01:04 +02:00
Ralf Jung
bb6a91dc94
adjust for ptr_op now being called type-based
2019-08-03 14:38:36 +02:00
Ralf Jung
e71ca965b9
also let bootstrap tell us where to find xargo
2019-08-03 13:53:32 +02:00
Ralf Jung
8071034b93
fix for error refactoring
2019-08-03 10:25:55 +02:00
Christian Poveda
ff2001040f
Add shim for ldexp
2019-08-02 15:46:28 -05:00
Ralf Jung
0dab3d5ee1
honor CARGO env var (for rustc bootstrap)
2019-08-02 18:02:54 +02:00
bors
f0e871785f
Auto merge of #870 - RalfJung:miri-rustc, r=oli-obk
...
Prepare Miri for rustc bootstrap building a separate libstd for it
2019-08-02 08:08:35 +00:00
Ralf Jung
30fb027f33
comment
2019-08-02 08:38:22 +02:00
Ralf Jung
c4c2716f4e
make reborrow shallow, and fix tests for that
2019-08-02 08:09:22 +02:00
Ralf Jung
56630e0ff0
bootstrap no longer carries a copy of these flags
2019-07-31 15:15:31 +02:00
Ralf Jung
d213c64d85
let the user skip the sysroot consistency check
2019-07-31 15:15:14 +02:00
Ralf Jung
faadb86159
bump Rust
2019-07-26 22:50:01 +02:00
Lzu Tao
e6a677fe63
build: Warn if not use 2018 idioms
2019-07-24 21:24:26 +07:00
bors
aadff8560b
Auto merge of #852 - lzutao:rustup, r=RalfJung
...
build: Fix build after rust-lang/rust#60951
2019-07-24 13:05:55 +00:00
Lzu Tao
fd71fbea0f
build: Fix build after rust-lang/rust#60951
2019-07-24 07:45:34 +07:00
Ralf Jung
724cf41eb1
use checked arithmetic in intrptrcast
2019-07-23 23:43:37 +02:00
Ralf Jung
068517ae66
make sure we always have an RNG
2019-07-23 21:38:53 +02:00
Ralf Jung
a2541aacd6
bump rust
2019-07-21 11:56:10 +02:00
Ralf Jung
11d71195dd
fix miri-rustc-tests
2019-07-19 18:03:55 +02:00
Ralf Jung
66ca0f2cc2
fix for rustc_driver change
2019-07-19 17:36:25 +02:00
Ralf Jung
a11d1f55ff
avoid unnecessary allocation
2019-07-13 15:18:15 +02:00
Joshua Nelson
ebf65cbdab
Give a useful error message if user gives invalid random seed
2019-07-13 08:28:33 -04:00
Ralf Jung
f8c6eb5e8c
thread creation error for Windows
2019-07-11 18:59:11 +02:00
Ralf Jung
e7b39e382a
reenable all tests on Windows
2019-07-11 18:41:53 +02:00
Ralf Jung
11686f4be2
we do this these days
2019-07-10 14:38:49 +02:00
Ralf Jung
70a5bb7dbb
force pointers before reborrowing; fixes cargo miri test suite
2019-07-10 14:36:56 +02:00
Ralf Jung
f79f31dfa1
adjust for rustc changes; normalize mplace before doing freeze-sensitive visit
2019-07-10 14:36:56 +02:00
Lzu Tao
3ea62d3527
Remove SliceConcatExt import
2019-07-10 09:56:35 +07:00
bors
e4a98ea8d8
Auto merge of #826 - RalfJung:uninit, r=RalfJung
...
uninit intrinsic is gone
Finally. :D
However, to land this we'll need to fix the intptrcast issues that block https://github.com/rust-lang/miri/pull/803 .
2019-07-06 09:40:51 +00:00
Ralf Jung
47bfc62b5b
use Memory::read_c_str, avoid a few to_ptr
2019-07-06 11:01:07 +02:00
Ralf Jung
9e130c6c6f
fix for changd machine trait signatures
2019-07-06 10:07:22 +02:00
Ralf Jung
4fa243be78
adjust for get_fn signature change
2019-07-06 10:07:22 +02:00
Ralf Jung
3ca934f07d
gen_random: use check_ptr_access
2019-07-06 10:07:22 +02:00
Ralf Jung
8093a59ffb
move gen_random to helpers
2019-07-06 10:07:21 +02:00
Ralf Jung
4f6a56f54f
better error message when the program tries to spawn a thread
2019-07-06 10:07:21 +02:00
Ralf Jung
2ca1b94e6d
update to FnVal changes; implement basic Dlsym support and use it for getentropy
2019-07-06 10:07:21 +02:00
Ralf Jung
fa290f1a48
uninit intrinsic is gone
2019-07-06 10:06:45 +02:00
Ralf Jung
5e022773f3
fix unused variable warning
2019-07-06 09:32:35 +02:00
Ralf Jung
b324cbf282
Merge remote-tracking branch 'origin/master' into rustup
2019-07-06 09:29:17 +02:00
Ralf Jung
1729965808
rename InterpretCx -> InterpCx
2019-07-05 23:48:51 +02:00
Ralf Jung
f23b782101
align small malloc-allocations even less, and test that we do
2019-07-05 23:48:48 +02:00
Ralf Jung
89696a4ab9
Merge remote-tracking branch 'origin/master'
2019-07-05 22:46:11 +02:00
Ralf Jung
4d76dd1f09
temporarily disable validation on Windows
2019-07-05 21:26:58 +02:00
Ralf Jung
aad5fde703
fix deallocating/reallocating with integer pointers
2019-07-05 19:21:21 +02:00
Ralf Jung
698b311a59
fix NULL in TLS dtors
2019-07-05 10:08:57 +02:00
Ralf Jung
07d5e9917c
avoid Scalar::is_null_ptr, it is going away
2019-07-05 09:56:42 +02:00
bors
3525943794
Auto merge of #822 - RalfJung:tls, r=RalfJung
...
move tls.rs into shims module
2019-07-04 08:51:19 +00:00
Ralf Jung
93c62a4912
move tls.rs into shims module
2019-07-03 23:12:44 +02:00
Ralf Jung
b29cb7d551
avoid catching errors
2019-07-03 10:56:25 +02:00
Ralf Jung
eb4128fb42
don't call Stacked Borrows hooks at all when validation is disabled
2019-07-03 10:47:28 +02:00
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
e82693fa23
Merge branch 'master' into rustup
2019-07-01 13:01:28 +02: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
ba47d73041
Merge branch 'master' into rustup
2019-06-29 16:19:27 +02: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
aa5a9bc152
some module comments
2019-06-29 14:15:05 +02:00
Ralf Jung
857305ff67
Merge remote-tracking branch 'ralf/machine' into rustup
2019-06-29 14:04:50 +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
373a4ee1e9
Remove default derive for MemoryExtra
2019-06-26 13:55:56 -05:00
Christian Poveda
413a351552
Initialize MemoryExtra with StdRng
2019-06-26 13:09:50 -05: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
Ralf Jung
a37953752d
use apfloat's FMA primitive
2019-06-11 19:41:43 +02:00
Ralf Jung
5e07ac335f
implement min and max floating point intrinsics
2019-06-11 19:41:43 +02:00
Ralf Jung
6eab94a459
fix from to/from f32/f64 changes
2019-06-11 19:41:43 +02:00
Ralf Jung
81debbd652
Merge branch 'master' into sysroot
2019-06-11 09:48:05 +02:00
Ralf Jung
446478cce2
fix for rustc rename mir -> body
2019-06-10 13:01:55 +02:00
Ralf Jung
0a9f9e0a0b
factor out common code to determine miri binary
2019-06-09 19:47:09 +02:00
Ralf Jung
5b91ecc066
fix comments
2019-06-09 17:12:41 +02:00
Ralf Jung
b0b082d4d8
do not handle MIRI_SYSROOT in the driver at all, rely fully on the --sysroot flag
2019-06-09 17:10:04 +02:00
Ralf Jung
244011a47f
don't have both MIRI_SYSROOT and --sysroot
2019-06-09 15:43:22 +02:00
Ralf Jung
619f296463
explain why we always set a sysroot; make sure we error if both MIRI_SYSROOT and --sysroot are set
2019-06-09 14:31:05 +02:00
Ralf Jung
05b7e61977
remove outdated sysroot management
2019-06-09 14:10:42 +02:00
Ralf Jung
09f30cabf0
cargo miri: make sure we see the same sysroot for rustc and miri
2019-06-09 13:53:04 +02:00
Ralf Jung
d6bcfc58e3
rustup for EvalResult rename
2019-06-08 22:14:47 +02:00
Dylan MacKenzie
1ceb81b345
Use in-core implementation of type_name
.
...
We bump `rust-version` to pick up the new impl from
https://github.com/rust-lang/rust/pull/61498 and add a test.
2019-06-05 22:36:53 -07:00
Ralf Jung
03b74c12c8
Merge branch 'master' into debug
2019-06-03 11:02:17 +02:00
Ralf Jung
0c704151f7
use new rustc infrastructure to tag the base pointer of static allocations
2019-06-02 22:16:02 +02:00
Ralf Jung
96444c11ee
remove too expensive debug assertion
2019-05-31 16:34:22 +02:00
Ralf Jung
e4cee77121
fix for rustc changes
2019-05-29 09:30:36 +02:00
Ralf Jung
7a7b853120
adjust for rustc changes
2019-05-28 22:46:56 +02:00
Ralf Jung
543e57990c
Merge branch 'master' into miri-build
2019-05-27 23:26:22 +02:00
Ralf Jung
8b219a1329
fix for latest rustc
2019-05-27 18:50:32 +02:00
Ralf Jung
cf96396fcc
make miri script smarter: auto-determine MIRI_SYSROOT, handle MIRI_TEST_TARGET
2019-05-27 14:41:44 +02:00
Ralf Jung
21fb14dba1
avoid printing the tag twice
2019-05-24 13:09:29 +02:00
Ralf Jung
5569fffe7d
avoid having both Debug and Display for a type and using the wrong one
2019-05-24 10:09:23 +02:00
Ralf Jung
1d92791965
use prettier printing
2019-05-23 15:54:50 +02:00
Ralf Jung
3e33e54b5b
hopefully improve error message a bit
2019-05-23 11:03:08 +02:00
Ralf Jung
5c54a58c06
typo
2019-05-19 14:04:59 +02:00
Oliver Scherer
3fde45233b
Prefer drain
over manual implementation of drain
2019-05-19 12:40:59 +02:00
Ralf Jung
6b4164e0df
nits
2019-05-17 19:42:35 +02:00
Ralf Jung
9c161b80d0
reading does not remove Unique, it just invalidates them
2019-05-17 15:29:02 +02:00
Ralf Jung
4b9e1544c2
give up on two-phase borrows
2019-05-17 15:02:31 +02:00
Ralf Jung
1447242bf9
refactor to simplify
2019-05-15 18:12:58 +02:00
Ralf Jung
f676f2265b
make writes act stack-like
2019-05-15 18:12:58 +02:00
Ralf Jung
9b3f07b161
make printing return place less verbose
2019-05-15 17:23:33 +02:00
Ralf Jung
bc0c76d861
fix for latest rustc
2019-05-13 22:07:24 +02:00
Ralf Jung
ada5edbf96
RUST_LOG got renamed to RUSTC_LOG
2019-05-13 14:10:52 +02:00
Ralf Jung
be47fae173
build with latest version
2019-05-13 11:37:54 +02:00
Ralf Jung
a9e66928d6
Update src/stacked_borrows.rs
...
Co-Authored-By: bjorn3 <bjorn3@users.noreply.github.com>
2019-05-11 12:07:25 +02:00
Ralf Jung
8530080d03
rename per-location part of reborowing to 'granting'
2019-05-11 12:06:59 +02:00
Ralf Jung
0f96676f43
switch back to upstream xargo
2019-05-10 08:28:02 +02:00
Ralf Jung
d05159f3a9
switch to my xargo fork, because that one works with current libstd
2019-05-01 20:37:08 +02:00
bjorn3
17643af868
Apply suggestions from code review
...
Co-Authored-By: RalfJung <post@ralfj.de>
2019-04-30 15:31:53 +02:00
Ralf Jung
59985157d3
SharedReadOnly reborrows are never weak
2019-04-30 13:55:04 +02:00
Bastien Orivel
69a252c1b3
Update cargo_metadata to 0.7
2019-04-27 23:31:48 +02:00
Ralf Jung
53f59431a5
fix HeapFree return value
2019-04-27 18:21:10 +02:00
Ralf Jung
aaa8ee743b
unify code paths
2019-04-22 13:20:51 +02:00
Ralf Jung
42b70f17d2
Merge branch 'master' into exit
2019-04-22 11:35:36 +02:00
Ralf Jung
131548a748
gen_random: handle size 0 and writing to mem
2019-04-22 11:08:23 +02:00
Ralf Jung
703b7f8a7e
implement SecRandomCopyBytes for macOS RNG
2019-04-22 11:08:23 +02:00
Ralf Jung
e4970fe6ff
Windows: implement heap functions
2019-04-21 16:48:02 +02:00
Ralf Jung
6a6c0cd5f0
implement ExitProcess for Windows
2019-04-21 13:25:24 +02:00
Ralf Jung
0694435650
implement exit
...
implement exit code via new error kind
2019-04-21 12:36:17 +02:00
Ralf Jung
2481d6091a
warn when cargo miri setup does not do anything
2019-04-19 19:27:19 +02:00
Ralf Jung
0a5e541272
two-phase-borrow comment
2019-04-19 08:36:05 +02:00
Ralf Jung
22b57f6435
Merge branch 'master' into stacked-borrows-2
2019-04-18 19:28:25 +02:00
Ralf Jung
36e99a1bda
remove some unneeded 'extern crate'
2019-04-18 16:16:32 +02:00
Tim Diekmann
9ecc07c9b2
Add handling for nullptr
and size == 0
2019-04-18 15:20:32 +02:00
Tim Diekmann
afb64232db
Fix for latest upstream update
2019-04-18 12:39:18 +02:00
Tim Diekmann
af3c4c0c23
Merge branch 'master' into realloc
2019-04-18 12:22:58 +02:00
Tim Diekmann
0e6deee76e
Add realloc
2019-04-18 01:20:21 +02:00
Ralf Jung
39ecd05c46
embrace find_map and some whitespace changes
2019-04-17 16:25:38 +02:00
Oliver Scherer
abe8959339
Apply suggestions from code review
...
Co-Authored-By: RalfJung <post@ralfj.de>
2019-04-17 16:22:33 +02:00
Ralf Jung
46d5fd8487
barriers are dead, long live protectors -- this enables overlapping two-phase borrows!
2019-04-17 16:02:57 +02:00
Ralf Jung
14e701f7d8
abstract mapping over all the stacks in some memory range
2019-04-17 16:02:57 +02:00
Ralf Jung
7b7fef1b53
let the permission of a new pointer depend on the type only
2019-04-17 16:02:57 +02:00
Ralf Jung
924624f810
some failures are impossible
2019-04-17 16:02:57 +02:00
Ralf Jung
a6d377ca0b
more comments
2019-04-17 16:02:57 +02:00
Ralf Jung
966d638760
make run-pass tests pass. tweak how we remove barriers.
2019-04-17 16:02:57 +02:00
Ralf Jung
3f0a2a2941
rewrite Stacked Borrows Core. this passes stacked-borrows.rs!
2019-04-17 16:02:57 +02:00
Ralf Jung
a50512f751
fix RtlGenRandom argument size
2019-04-16 21:27:27 +02:00
Ralf Jung
6fdc75024b
Merge branch 'master' into rand
2019-04-16 20:55:58 +02:00
Ralf Jung
ba567d19f0
stub out pthread_atfork to that we support thread_rng()
2019-04-16 19:53:10 +02:00
Ralf Jung
9c8ad5f9e1
fix 0-sized getrandom
2019-04-16 19:26:02 +02:00
Ralf Jung
378d9d4172
be pragmatic about ptr-int comparisons, for now
2019-04-16 17:47:37 +02:00
Ralf Jung
5f29a53992
rustup
2019-04-12 12:32:26 +02:00
Ralf Jung
8de4f34a7f
Merge remote-tracking branch 'origin/master'
2019-04-11 22:09:09 +02:00
Ralf Jung
48b22b80c5
Fix typo
...
Co-Authored-By: Aaron1011 <aa1ronham@gmail.com>
2019-04-09 23:33:13 -04:00
Oliver Scherer
2eb2c8dd57
Merge branch 'master' into feature/random
2019-04-09 21:58:15 +02:00
Aaron Hill
0837d630f7
Some final cleanup
2019-04-09 15:49:34 -04:00
Aaron Hill
c6e0d09714
Retrieve SYS_getrandom from libc using const-eval
2019-04-09 11:04:30 -04:00
Aaron Hill
22044c878d
Improve deterministic mode error message
2019-04-09 10:16:32 -04:00
Aaron Hill
6b4c5b81da
Fix 'RtlGenRandom' argument slots
2019-04-08 23:18:10 -04:00
Aaron Hill
5f997645bc
Interpret system call numbers relative to target architecture
2019-04-08 22:37:58 -04:00
Aaron Hill
6d3e93c281
Refactor random number generation
2019-04-08 22:22:41 -04:00
Aaron Hill
6b0440e26d
Cleanup argument parsing
2019-04-08 21:40:52 -04:00
Ralf Jung
06af617b92
fix dumping uninitialized locals
2019-04-08 13:40:11 +02:00
bjorn3
32d01263a9
Update src/fn_call.rs
...
Co-Authored-By: TimDiekmann <21277928+TimDiekmann@users.noreply.github.com>
2019-04-08 10:44:02 +02:00
Aaron Hill
808b149671
Use raw syscall numbers
2019-04-07 20:09:53 -04:00
Aaron Hill
dddeda7f7d
Use getrandom() syscall number from libc
2019-04-07 19:57:14 -04:00
Aaron Hill
73239573c9
Implement non-deterministc mode
...
Part of #653
This allows us to properly implement getrandom(),
which unlocks the default HashMap type (e.g. HashMap<K, V>)
with RandomState)
This commit adds a new '-Zmiri-seed=<seed>' option. When present,
this option takes a 64-bit hex value, which is used as the seed
to an internal PRNG. This PRNG is used to implement the 'getrandom()'
syscall.
When '-Zmiri-seed' is not passed, 'getrandom()' will be disabled.
2019-04-07 19:26:20 -04:00
Tim Diekmann
a59e155206
Tidy up calloc code
2019-04-08 01:12:44 +02:00
Tim Diekmann
d1d05c8b41
Fix tagging order
2019-04-07 21:09:21 +02:00
Tim Diekmann
6e4264bf27
Add calloc
2019-04-07 20:52:12 +02:00
Oliver Scherer
9a0eaf6ebd
Update to rustc nightly
2019-04-03 10:48:11 +02:00
kenta7777
d9178b9300
renames EvalContext to InterpretCx
2019-03-30 10:58:28 +09:00
Oliver Scherer
5d3825fc48
Update src/bin/miri-rustc-tests.rs
...
Co-Authored-By: RalfJung <post@ralfj.de>
2019-03-18 15:08:36 +01:00
Ralf Jung
8ee67994cc
fix for rustc change
2019-03-18 13:48:37 +01:00
Ralf Jung
687c5d13ea
bump Rust; remove stabilized feature
2019-03-18 13:31:29 +01:00
Oliver Scherer
56c7656568
Remove dead code and docs
2019-03-11 10:28:03 +01:00
Oliver Scherer
a672abddfa
Make the rustc test runner build again
2019-03-11 10:25:21 +01:00
Oliver Scherer
ecae3751b4
Reintroduce prepending the input file name to the miri arguments
2019-03-11 09:43:52 +01:00
John Kåre Alsaker
7d142ecf75
Use the new rustc interface
2019-03-11 09:43:52 +01:00
Ralf Jung
8c74325441
mention --exclude-should-panic
2019-03-10 17:53:30 +01:00
Santiago Pastorino
0bb6ae8f62
Place::Local(x) is now Place::Base(PlaceBase::Local(x))
2019-03-01 11:27:30 -03:00
Ralf Jung
a9b03f9411
avoid [..]
2019-02-27 11:39:59 +01:00
Alexander Regueiro
205490b85c
Fixed nits raised in review.
2019-02-26 18:37:46 +00:00
Alexander Regueiro
12d3ecbaff
Various cosmetic improvements.
2019-02-26 18:37:46 +00:00
rchaser53
b1c0cf2ef9
use copy_op directly insteadof write_scalar
...
- fix volatile_store logic
- rename test to be able to read back from later
- expand test to use assert_eq! and confirm to fix volatile_store
- expand test to use assert_eq! and confirm normal load
2019-02-26 19:49:02 +09:00
Ralf Jung
9397b36ab8
typo and comments
2019-02-15 09:35:55 +01:00
Ralf Jung
2c3ee678b1
Fix comparing fat pointers
2019-02-15 09:35:55 +01:00
Ralf Jung
457741d6d2
update for new bin_op APIs
2019-02-15 09:35:55 +01:00
Ralf Jung
2d323857e9
implement and test posix_memalign
2019-02-13 17:47:54 +01:00
Ralf Jung
2d892c160b
skip installing rust-src if XARGO_RUST_SRC is set
2019-02-13 12:10:05 +01:00
Ralf Jung
fd6bd5ba4b
rename things away from 'Shr' that are used for much more than just shared references
2019-02-12 10:58:18 +01:00
Ralf Jung
3c652032c0
be more clear which stack we are talking about
2019-02-12 10:51:03 +01:00
Ralf Jung
35ed590075
also enable passing arguments through from cargo-miri
2019-02-09 20:00:40 +01:00
Ralf Jung
5e468766b7
also pass actual arguments to Windows
2019-02-09 20:00:40 +01:00
Ralf Jung
e400b42c21
fix build
2019-02-09 20:00:40 +01:00
Ralf Jung
0802b3a108
implement passing arguments to the interpreted program
2019-02-09 20:00:40 +01:00
Ralf Jung
0f6e82db36
fix (un)likely intrinsics
2019-02-09 13:08:23 +01:00
Ralf Jung
7af75abdd7
we don't need to flush stderr
2019-02-08 10:41:44 +01:00
Ralf Jung
68e8ff1a09
flush stdout/stderr to make sure it appears on the screen
2019-02-07 18:04:58 +01:00
Ralf Jung
e0891bd619
Fix cargo miri test on lib crates
2019-02-07 16:33:46 +01:00
Ralf Jung
5766b32871
update test for cargo-miri
2019-02-07 13:03:03 +01:00
Ralf Jung
4309539efe
cargo miri: refactor how we detect what to interpret and how we run cargo rustc, fix running unit tests
2019-02-07 13:00:27 +01:00
Ralf Jung
48ac35f072
panic_impl is another way to panic
2019-02-06 11:41:45 +01:00
Ralf Jung
661ed7b82d
implement atomic_nand
2019-02-06 11:40:10 +01:00
Ralf Jung
76985f1e2d
remove outdated comment
2019-01-25 08:59:12 +01:00
Oliver Scherer
9f06cdc87a
Explain Ref problems
2019-01-22 17:19:19 +01:00
Oliver Scherer
7269a884c9
Expose AllocId
s for priroda
2019-01-22 16:46:45 +01:00
Oliver Scherer
9c1c407a02
Update to latest rustc master
2019-01-21 17:29:09 +01:00
Ralf Jung
c54d7eef07
expand docs
2019-01-07 19:41:18 +01:00
Ralf Jung
a957a36ddc
tweak merging to give up if we don't make any progress
2019-01-07 19:36:25 +01:00
Ralf Jung
17d11ebe6e
be explicit about doing a binary search; fix out-of-bounds check
2019-01-07 15:10:22 +01:00
Ralf Jung
4f9c14c256
deduplicate RangeMap elements in iter_mut
...
This cuts down execution time of the benchmark in the OP of https://github.com/solson/miri/issues/593 by another 25%, and it cuts max-RSS by 90% (!)
2019-01-07 15:10:22 +01:00
Ralf Jung
f24d0354f9
rewrite RangeMap to use a sorted Vec instead of a RangeMap
...
This gives us a 20% perf improve for the benchmark from https://github.com/solson/miri/issues/593
2019-01-07 15:10:22 +01:00
Ralf Jung
6c9e702d9b
range_map: also test size of the internal representation
2019-01-07 15:10:22 +01:00
Ralf Jung
e81d81e5af
implement panic_if_uninhabited intrinsic
2019-01-07 11:23:08 +01:00
Ralf Jung
fced2ac865
move env var stuff out of the miri lib
2019-01-04 15:37:51 +01:00
Ralf Jung
f2e14d9314
use memory::check_bounds_ptr for offset check
2018-12-26 13:16:47 +01:00
Ralf Jung
5a8f9e58f7
properly compare unequal function pointers
2018-12-25 13:29:38 +01:00
Ralf Jung
4e4569cf4b
fix build and tests with latest nightly
2018-12-25 13:26:40 +01:00
Ralf Jung
4f659ed507
fix for infallible allocation
2018-12-23 14:13:16 +01:00
Ralf Jung
a03d184648
Merge branch 'master' into rustup
2018-12-20 13:34:24 +01:00
Ralf Jung
750cd442be
fix argv null terminator
2018-12-19 15:45:23 +01:00
Ralf Jung
af4fb6655e
implement GetCommandLineW, GetEnvironmentVariableW, GetConsoleScreenBufferInfo, SetConsoleTextAttribute, GetSystemInfo
2018-12-19 15:25:25 +01:00
Ralf Jung
51ed485ba4
implement stdout/stderr on Windows
2018-12-19 12:16:07 +01:00
Ralf Jung
d67da9f04b
no need to set the cargo-miri feature twice
2018-12-19 11:12:56 +01:00
Ralf Jung
11433bf38e
actually show warnings about suppressed output
2018-12-19 11:07:24 +01:00
Ralf Jung
ecf6599051
xargo version check: also check application name, just to be sure
2018-12-19 11:06:46 +01:00
Ralf Jung
4e0fe62bd9
typo
2018-12-18 19:45:10 +01:00
Ralf Jung
e4fd710606
there is a new xargo released, use that
2018-12-18 19:41:32 +01:00
Ralf Jung
e8c53e81f8
implement macOS functions for argc, argv
2018-12-18 19:26:57 +01:00
Ralf Jung
93b8c23f7b
Merge remote-tracking branch 'origin/master' into cargo-miri-test
2018-12-18 18:36:19 +01:00
Ralf Jung
96b2c347d7
temporarily use git version of xargo
2018-12-15 18:39:42 +01:00
Ralf Jung
6a37e723c4
detect outdated xargo version
2018-12-15 15:08:03 +01:00
Ralf Jung
e6147ae67e
*oops*
2018-12-12 17:30:20 +01:00
Ralf Jung
b6a4556cb9
use show_error to terminate
2018-12-12 17:05:23 +01:00
Ralf Jung
ed83cc2600
use RUSTC_WRAPPER for the cargo hook
2018-12-12 17:03:40 +01:00
Ralf Jung
7e9098ff69
treat ref-to-raw cast like a reborrow: do a special kind of retag
2018-12-12 11:11:20 +01:00
Ralf Jung
ce5089c390
rebase fallout
2018-12-11 17:54:39 +01:00
Ralf Jung
9417b28de5
treat test binaries like all others
2018-12-11 17:42:18 +01:00