Commit Graph

1775 Commits

Author SHA1 Message Date
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