hyd-dev
ce7040075a
Disallow #[no_mangle]
/#[export_name = ...]
functions that have the same symbol name as built-in shims
2021-06-11 15:18:47 +08:00
hyd-dev
6aef1d687d
Remove erroneous exit()
and ExitProcess()
in tests/run-pass/function_calls/exported_symbol.rs
2021-06-11 13:32:00 +08:00
hyd-dev
4f3718ef85
Fix the wrong EmulateByNameResult::NotSupported
in syscall
shim
2021-06-11 11:44:57 +08:00
bors
e5c3af6f51
Auto merge of #1818 - landaire:feature/panic-on-unsupported-syscalls, r=RalfJung
...
Add support for panicking in the emulated application when unsupported functionality is encountered
This PR fixes #1807 and allows an optional flag to be specified to panic when an unsupported syscall is encountered. In essence, instead of bubbling up an error in the context of the Miri application Miri will panic within the context of the *emulated* application. This feature is desired to allow CI pipelines to determine if a Miri failure is unsupported functionality or actual UB. Please read [this comment](https://github.com/rust-lang/miri/issues/1807#issuecomment-845425076 ) for the rationale behind this change.
Note: this change does not cover all cases where unsupported functionality errors may be raised. If you search the repo for `throw_unsup_format!` there are many cases that I think are less likely to occur and may still be problematic for some folks.
TODO:
- [x] README documentation on this new flag
- [x] Add tests
2021-06-09 18:09:06 +00:00
Ralf Jung
a38f02c44c
isolated operations return EPERM; tweak isolation hint
2021-06-09 18:24:59 +02:00
Smit Soni
892f706ce5
Add a support to execute isolated op without halting
...
In user interface, added a new flag `-Zmiri-isolation-error` which
takes one of the four values -- hide, warn, warn-nobacktrace, and
abort. This option can be used to configure Miri to either abort or
return an error code upon executing isolated op. If not aborted, Miri
prints a warning, whose verbosity can be configured using this flag.
In implementation, added a new enum `IsolatedOp` to capture all the
settings related to ops requiring communication with the
host. Old `communicate` flag in both miri configs and machine
stats is replaced with a new helper function `communicate()` which
checks `isolated_op` internally.
Added a new helper function `reject_in_isolation` which can be called
by shims to reject ops according to the reject_with settings. Use miri
specific diagnostics function `report_msg` to print backtrace in the
warning. Update it to take an enum value instead of a bool, indicating
the level of diagnostics.
Updated shims related to current dir to use the new APIs. Added a new
test for current dir ops in isolation without halting machine.
2021-06-09 05:50:52 -07:00
hyd-dev
23c0495ebd
Update Box<Any>
to Box<dyn Any>
in catch_panic.stderr
2021-06-08 22:18:27 +08:00
Lander Brandt
ae237098f8
Add support for panicking in the emulated application when unsupported syscalls are encountered
2021-06-07 15:21:53 -07:00
Ralf Jung
0ece55d748
expand comment
2021-06-06 10:33:46 +02:00
hyd-dev
d7aff96053
Remove 2 tests
2021-06-06 11:22:25 +08:00
hyd-dev
879000b133
Detect std
by checking if the crate defines #[lang = "start"]
rather than string comparison
2021-06-06 11:12:05 +08:00
bors
28717a0e90
Auto merge of #1776 - hyd-dev:1170, r=RalfJung
...
Implement calls to exported symbols (#1170 )
Closes #1170 .
2021-06-03 15:59:56 +00:00
Pointerbender
386863ac53
added a strings.rs regression test case for potential future UB
2021-06-03 17:25:23 +02:00
hyd-dev
ba3b11fa42
Remove some tests
2021-06-03 14:16:58 +08:00
hyd-dev
e4e6c25f67
Remove FIXME in tests/compile-fail/panic/bad_unwind.rs
2021-06-03 13:39:33 +08:00
Pointerbender
c6dbe5cdca
use references so that potential aliasing bugs are triggered during regression test
2021-06-02 15:36:18 +02:00
Pointerbender
b8aba11de3
regression tests for pointer invalidation in core library slice methods
2021-06-02 15:36:18 +02:00
Aaron Hill
73700bc01c
Rustup for const_err changes
2021-05-31 10:50:25 -05:00
hyd-dev
a952787163
Improve tests
2021-05-31 11:57:16 +08:00
hyd-dev
45832d4031
Remove duplicated "foreign function"
2021-05-31 11:57:15 +08:00
hyd-dev
41f33a64f8
Implement calls to exported symbols
2021-05-31 11:15:29 +08:00
hyd-dev
71f4140550
Add -Zmiri-disable-abi-check
2021-05-31 11:14:23 +08:00
hyd-dev
9b2d42587f
unwind
is no longer Option<BasicBlock>
2021-05-28 22:08:51 +08:00
Ralf Jung
393ce98b32
fix a Stacked Borrows test whose output changed
2021-05-23 18:04:13 +02:00
Ralf Jung
dd404cc92e
avoid importing C functions in alloc_write_race test
2021-05-19 15:27:58 +02:00
Ralf Jung
801a1744cd
update for Memory API changes
2021-05-19 15:27:58 +02:00
Ralf Jung
7af7e9e4f3
rustup
2021-05-11 15:32:05 +02:00
hyd-dev
1ab9fd50a4
Update pointer error messages
2021-05-08 15:33:27 +08:00
Ralf Jung
a2b227f95a
stacked borrows: ensure array-to-elem casts behave correctly
2021-05-07 09:24:33 +02:00
hyd-dev
47c5b6eb08
encountered a NULL reference
-> encountered a null reference
2021-05-04 15:53:19 +08:00
Smitty
e0e59f6020
Simplify finiteness checking
2021-05-03 10:08:42 -04:00
Smitty
68d29554a8
test for infinite value in f*_fast
2021-05-03 09:56:51 -04:00
Smitty
e591b83185
UB if f*_fast intrinsic called with nonfinite value
2021-05-02 12:25:00 -04:00
hyd-dev
2da6bedaec
Use harness = false
instead of #![feature(custom_test_frameworks)]
2021-05-01 22:28:33 +08:00
hyd-dev
b30c5fef5b
Rustup for rust-lang/rust#84401
2021-04-30 19:35:59 +08:00
Ralf Jung
4c741e5fb2
rustup
2021-04-25 16:57:48 +02:00
Ralf Jung
2ae699c56d
make TLS-drop-test more cross-platform
2021-04-20 09:59:26 +02:00
Ralf Jung
d512ba2ae2
test thread_local_const_init
2021-04-18 11:01:08 +02:00
Charles Lew
85f7dd6131
Remove main_fn.rs
test.
2021-04-17 00:04:09 +08:00
Aliénore Bouttefeux
648638976a
allow deref of null ptr in test
2021-04-15 10:00:39 +02:00
Ralf Jung
0674d439b6
test calling pthread_cond_timedwait with an already elapsed timeout
2021-04-11 14:21:42 +02:00
Ralf Jung
21968aa53b
add test to detect dropped temporary
2021-04-10 12:09:10 +02:00
hyd-dev
3dff1d4fcd
Don't use MIRI_DEFAULT_ARGS
to compile host crates
2021-04-09 00:57:59 +08:00
Ralf Jung
31bd77c7d8
bump miri dependencies
2021-04-04 11:48:20 +02:00
Ralf Jung
de0f3f930b
rustup
2021-03-28 01:36:41 +01:00
Ralf Jung
585e51aabd
disable MIR opts for ZST-related tests
2021-03-25 12:44:30 +01:00
Ralf Jung
b4b048cc86
rustup; better comment in storage_dead_dangling test
2021-03-22 12:35:30 +01:00
hyd-dev
633ac2a222
Remove meaningless tests
2021-03-17 21:55:45 +08:00
hyd-dev
bbc348539b
Unsupported foreign non-"C"/"system"-ABI function calls are not UB
2021-03-17 21:20:04 +08:00
bors
0788188c7b
Auto merge of #1743 - RalfJung:callee-checks, r=RalfJung
...
Check callee ABI when Miri calls closures
Fixes https://github.com/rust-lang/miri/issues/1741
2021-03-14 18:05:18 +00:00
Ralf Jung
15465a5881
don't ICE when we unwind despite panic=abort
2021-03-14 17:10:45 +01:00
Ralf Jung
c9ff02f549
ensure we catch incorrectly unwinding calls
2021-03-14 17:03:20 +01:00
Ralf Jung
d1dec9cd23
don't ICE when callee has the wrong number of arguments
2021-03-14 15:38:22 +01:00
Ralf Jung
893843fd45
when Miri calls a function ptr, make sure it has the right ABI
2021-03-14 15:30:37 +01:00
Ralf Jung
98f28ac9c8
rustup
2021-03-11 09:07:05 +01:00
Ralf Jung
7a7f7b1a7a
rustup
2021-03-10 15:21:12 +01:00
Mara Bos
90e218ad90
Fix panic test.
2021-03-08 17:06:50 +01:00
Mara Bos
5bd5ea21ea
Remove unwrap_none as it won't be stabilized.
...
This upgrades to the latest rustc to be able to use try_insert()
instead.
2021-03-08 16:59:20 +01:00
Smitty
26e97ec54f
Support breakpoint intrinsic
2021-03-04 07:48:28 -05:00
bors
2670839e1a
Auto merge of #1721 - henryboisdequin:add-atomic-min-and-max, r=oli-obk
...
Add atomic min and max
Closes #1718
Previous attempt: #1653
TODO:
- [x] Merge `atomic_op` and `atomic_min_max` functions
- [x] Fix CI
**Note:** this PR also removes arbitrary trailing whitespace and generally formats the affected files
2021-03-02 14:52:32 +00:00
Henry Boisdequin
f8440d6c99
Add in atomic_{min,max}_x
intrinsics
...
Co-authored-by: Greg Bowyer <gbowyer@fastmail.co.uk>
2021-03-02 20:17:05 +05:30
Ralf Jung
97e45e0699
make optimized-test-run a bit more like what cargo does
2021-03-02 11:04:35 +01:00
Ralf Jung
7acf80d2bb
rustup; fix tests for new MIR optimization
2021-03-02 10:57:08 +01:00
Ralf Jung
48f7c8e2e6
fix reborrowing of tagged ZST references
2021-02-27 20:10:50 +01:00
Ralf Jung
c003fd0157
rustup
2021-02-23 09:23:49 +01:00
Ralf Jung
a5a751e795
rustup
2021-02-17 09:37:21 +01:00
Ralf Jung
4c867feeb6
add test by @eddyb
2021-02-16 10:18:31 +01:00
Ralf Jung
0b3dba8e70
rustup and temporarily disable broken tests
2021-02-16 09:55:33 +01:00
Caleb Zulawski
dd81fb3f10
Remove non-power-of-two SIMD vectors
2021-02-08 00:17:24 -05:00
Mara Bos
7fc24442bd
Update rust version.
...
- Allow new non_fmt_panic lint in test.
- Remove stabilized feature(wake_trait).
2021-02-05 10:08:05 +01:00
Ralf Jung
d309804395
rustup
2021-02-03 23:37:40 +01:00
Ralf Jung
6f5a91f70a
rustup
2021-01-31 13:12:25 +01:00
Ralf Jung
9d777d8410
add test for caller ABI check
2021-01-29 21:16:17 +01:00
bors
a0485c5a90
Auto merge of #1686 - thomcc:cmpxchg_weak, r=oli-obk
...
Add random failures to compare_exchange_weak
In practice this is pretty useful for detecting bugs.
This fails more frequently than realistic (~~50%~~ (now 80%, controlled by a flag) of the time). I couldn't find any existing code that tries to model this (tsan, cdschecker, etc all seem to have TODOs there). Relacy models it with a 25% or 50% failure chance depending on some settings.
CC `@JCTyblaidd` who wrote the code this modifies initially, and seems interested in this subject.
2021-01-28 09:52:04 +00:00
Ralf Jung
e308eeb3f1
rustup; more slack for timing tests
2021-01-27 10:44:08 +01:00
Ralf Jung
0e56bff5f9
erroneous_const span now changes with inlining
2021-01-26 11:48:11 +01:00
Ralf Jung
d38e861f1e
rustup; allow some lints
2021-01-26 11:43:39 +01:00
Thom Chiovoloni
d4b592ed17
Fail 80% of the time on weak cmpxchg, not 50%
2021-01-26 00:13:54 -08:00
Thom Chiovoloni
efd2d55e00
review nits
2021-01-26 00:13:54 -08:00
Thom Chiovoloni
b6eccc6482
Test that _weak atomics sometimes fail
2021-01-26 00:13:54 -08:00
Thom Chiovoloni
c678bd722e
Add random failures to compare_exchange_weak
2021-01-26 00:13:54 -08:00
Ralf Jung
3990debf82
rustup; test swap of element with itself
2021-01-22 09:22:53 +01:00
Ralf Jung
7125b86c33
remove some unnecessary feature gates
2021-01-16 18:27:10 +01:00
Ralf Jung
4a035103dc
rustup; make tests pass again
2021-01-15 16:41:14 +01:00
Ralf Jung
82c6c77b9a
test Weak into_raw/from_raw on dangling ptrs
2020-12-31 13:11:34 +01:00
Ralf Jung
7e198147df
panicing now works with -Zmiri-track-raw-pointers
2020-12-31 00:17:08 +01:00
Ralf Jung
a81ebd8fe3
rustup; add an interesting alias test case
2020-12-29 19:27:45 +01:00
Ralf Jung
3d151c8b62
leak checker: also test AtomicPtr stored via 'swap'
2020-12-21 11:36:39 +01:00
JCTyBlaidd
aaf8ca4c77
Fix review changes
2020-12-13 11:04:58 +00:00
JCTyBlaidd
4e74f9f013
Change to disable mir-opt in compile-flags
2020-12-13 11:04:58 +00:00
JCTyBlaidd
3df67141e6
Disable tests in windows
2020-12-13 11:04:58 +00:00
JCTyBlaidd
a30105df0b
Defeat the mir-opt=3 optimizer.
2020-12-13 11:04:58 +00:00
JCTyBlaidd
8676c60f87
Update note
2020-12-13 11:04:58 +00:00
JCTyBlaidd
296ba8b1c8
Fix bug with reporting wrong thread for races with reads & add thread ids to data-race tests
2020-12-13 11:04:58 +00:00
JCTyBlaidd
fbe7fbb890
Add concurrent caller location test
2020-12-13 11:04:58 +00:00
JCTyblaidd
c4ccd0b6a1
Fix nits
...
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
2020-12-13 11:04:58 +00:00
JCTyBlaidd
f4bcef1113
Increase sleep times for the scheduler
2020-12-13 11:04:58 +00:00
JCTyBlaidd
c45b1b16be
More tests, fix issue 1643 and detect races with allocation.
2020-12-13 11:04:58 +00:00
Ralf Jung
27a518e166
enable track-raw-ptr tests on Windows
2020-12-11 11:28:33 +01:00
Ralf Jung
7bbd6bca77
rustup
2020-12-10 19:53:45 +01:00