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