bors
515287f114
Auto merge of #1480 - RalfJung:diagnostic-stacktrace-fix, r=oli-obk
...
fix non-fatal diagnostics stacktraces
Our non-fatal diagnostics are printed *after* completing the step that triggered them, which means the span and stacktrace used for them is that of the *next* MIR statement being executed. That's quite bad, obviously, as pointing to where in the source something happens is their entire point.
Here's an example:
```rust
use std::ptr;
static mut PTR: *mut u8 = ptr::null_mut();
fn get_ptr() -> *const u8 { unsafe { PTR }}
fn cause_ub() { unsafe {
let _x = &*get_ptr();
} }
fn main() { unsafe {
let mut l = 0;
PTR = &mut l;
let r = &mut *PTR;
cause_ub();
let _x = *r;
} }
```
This example is UB; if you track the pointer tag that is given in the final error, it points to the entire body of `cause_ub` as a span, instead of the `&*get_ptr();`.
I am not sure what the best way is to fix this. The cleanest way would be to capture a stack trace before the step and use it in case of a diagnostic, but that seems silly perf-wise. So instead I went with reconstructing the old stacktrace by going back one step in the MIR. This is however not possible if we were executing a `Terminator`... I think those cannot cause diagnostics but still, this is not great.
Any ideas?
r? @oli-obk
2020-07-17 11:40:40 +00:00
Ralf Jung
545aa60195
fix typo
...
Co-authored-by: Oliver Scherer <github35764891676564198441@oli-obk.de>
2020-07-17 13:40:13 +02:00
Ralf Jung
d617d615e4
fix non-fatal diagnostics stacktraces
2020-07-17 12:55:45 +02:00
bors
0454dabcfb
Auto merge of #1479 - RalfJung:fs-nocast, r=RalfJung
...
fs: remove an unnecessary intermediate cast
2020-07-16 10:17:23 +00:00
Ralf Jung
c28786d320
remove an unnecessary intermediate cast
2020-07-16 12:16:43 +02:00
bors
e5f2b1b3ef
Auto merge of #1478 - RalfJung:readme, r=RalfJung
...
make cfg(miri) greppable
2020-07-15 08:10:02 +00:00
Ralf Jung
6dbfb2d9de
make cfg(miri) greppable
2020-07-15 10:09:28 +02:00
bors
c830142e60
Auto merge of #1477 - RalfJung:rustup, r=RalfJung
...
rustup; fix Windows TLS
2020-07-15 06:43:14 +00:00
Ralf Jung
ce5ed69eac
rustup; fix Windows TLS
2020-07-15 08:42:15 +02:00
Samrat Man Singh
74ff4f805a
Read into buffer of fixed size for read
s to STDIN
...
Also:
- Check isolation is disabled.
- Add FIXMEs to set error numbers in `read` and `write`.
2020-07-12 20:27:19 +05:30
bors
3e734ac6ef
Auto merge of #1475 - RalfJung:dangcast, r=RalfJung
...
test casting a dangling ptr back from an int
2020-07-11 18:57:28 +00:00
Ralf Jung
f68bba9906
test casting a dangling ptr back from an int
2020-07-11 20:56:47 +02:00
bors
eee22ffdda
Auto merge of #1474 - RalfJung:canonical, r=RalfJung
...
go back to using canonicalize()
Newer xargo should hopefully work with the paths this produces on Windows.
2020-07-11 09:08:03 +00:00
Ralf Jung
15466e00b0
go back to using canonicalize()
2020-07-11 11:07:17 +02:00
Samrat Man Singh
2602e951c0
Handle read
s on STDIN
2020-07-11 14:06:49 +05:30
bors
ade99c3bed
Auto merge of #1473 - Stupremee:no-ice-if-no-main-fn, r=oli-obk
...
Early exit if program doesn't contain a main function
Resolves #1452
2020-07-09 15:35:28 +00:00
Justus K
d23e245f38
Move no_main test to compile-fail
2020-07-09 17:21:09 +02:00
Justus K
c93fc933bd
Add ui test for early exiting if no main
2020-07-09 14:08:45 +02:00
Justus K
22e7a6263b
Early exit if program doesn't contain a main fn
2020-07-09 13:16:38 +02:00
bors
eb5ff1791b
Auto merge of #1472 - RalfJung:abs, r=RalfJung
...
better way to get an absolute path
suggested by @matklad
2020-07-09 11:03:15 +00:00
Ralf Jung
2fbc4aa7ca
Cleanup code
...
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-09 13:02:42 +02:00
Ralf Jung
ee056ccf7b
better way to get an absolute path
2020-07-09 12:45:35 +02:00
bors
b245786f9d
Auto merge of #1471 - RalfJung:win, r=RalfJung
...
on Windows, strip the '\\?\' prefix from the canonical path
This should help with https://github.com/rust-lang/rust/pull/74146#issuecomment-655723028
2020-07-09 07:00:39 +00:00
Ralf Jung
7d9d74e065
on Windows, strip the '\\?\' prefix from the canonical path
2020-07-09 08:59:47 +02:00
bors
578aebf478
Auto merge of #1470 - RalfJung:machine-tracking, r=RalfJung
...
we cannot track all machine memory any more due to int-ptr-casts
Fixes a regression introduced by https://github.com/rust-lang/rust/pull/74006
2020-07-08 10:02:13 +00:00
Ralf Jung
dcb0f6309e
we cannot track all machine memory any more due to int-ptr-casts
2020-07-08 12:01:49 +02:00
bors
5e94f57cb3
Auto merge of #1468 - RalfJung:uninit-validation, r=RalfJung
...
Test uninit memory validation
This adds the tests for https://github.com/rust-lang/rust/pull/74059 .
2020-07-07 20:59:17 +00:00
Ralf Jung
04019eec3c
rustup
2020-07-07 22:57:58 +02:00
Ralf Jung
6c2521f54f
adjust error messages
2020-07-07 22:48:51 +02:00
Ralf Jung
28b44d970c
test validation of uninit memory (used to ICE)
2020-07-07 22:48:51 +02:00
bors
975513728e
Auto merge of #1469 - RalfJung:relative, r=RalfJung
...
support relative XARGO_RUST_SRC
2020-07-05 18:01:56 +00:00
Ralf Jung
ab65cb3c67
support relative XARGO_RUST_SRC
2020-07-05 20:01:12 +02:00
bors
9a0605d62f
Auto merge of #1466 - RalfJung:target, r=RalfJung
...
set --target when building miri
This helps cargo tell apart `./miri` builds and `cargo check` (e.g. through rust-analyzer).
See https://github.com/rust-lang/cargo/issues/8440 .
2020-07-03 09:20:07 +00:00
Ralf Jung
e310e2f0b9
set --target when building miri
...
This helps cargo tell apart `./miri` builds and `cargo check` (e.g. through rust-analyzer).
See https://github.com/rust-lang/cargo/issues/8440 .
2020-07-03 11:18:47 +02:00
bors
86a7c555ed
Auto merge of #1465 - nbdd0121:patch-1, r=RalfJung
...
Remove likely and unlikely from intrinsics shim
They are now implemented in MIR interpreter by rust-lang/rust#73778
2020-07-03 06:06:37 +00:00
Gary Guo
c5b324b031
Remove likely and unlikely from intrinsics shim
...
They are now implemented in MIR interpreter by rust-lang/rust#73778
2020-07-02 20:00:27 +01:00
bors
e7ef64fb74
Auto merge of #1463 - RalfJung:track-call-id, r=oli-obk
...
add option to track call IDs
2020-07-02 12:52:33 +00:00
bors
b4ccb07cc8
Auto merge of #1464 - RalfJung:rustup, r=RalfJung
...
rustup
2020-07-02 08:48:45 +00:00
Ralf Jung
6ca67a346b
rustup
2020-07-02 10:48:01 +02:00
Ralf Jung
c379793cde
add option to track call IDs
2020-07-02 10:33:54 +02:00
bors
fd81012477
Auto merge of #1462 - RalfJung:ignore-windows, r=RalfJung
...
fix some ignore-windows comments
and make that more consistent
2020-06-28 18:41:17 +00:00
Ralf Jung
fcdacce4b1
fix some ignore-windows comments
2020-06-28 20:40:20 +02:00
bors
2dfa6c1a46
Auto merge of #1461 - RalfJung:rwlock-win, r=oli-obk
...
Implement rwlocks on Windows
Fixes https://github.com/rust-lang/miri/issues/1059
2020-06-28 10:59:34 +00:00
Ralf Jung
3a5bcb97ed
move rwlock dequeuing to shared code, and use that code for Windows rwlocks
2020-06-28 11:28:46 +02:00
Ralf Jung
a9dc2796ca
Move get/set_at_offset helpers to global helpers file
2020-06-28 09:23:01 +02:00
Ralf Jung
e54619b5e1
with this, we support panics on Windows
2020-06-27 14:43:37 +02:00
Ralf Jung
8e92969948
implement Windows SRWLock shims
2020-06-27 14:36:05 +02:00
Ralf Jung
dca00ab85e
introduce platform-specific module hierarchy for dlsym (similar to foreign_items)
2020-06-27 14:36:05 +02:00
bors
bde2eb4a44
Auto merge of #1460 - RalfJung:modules, r=RalfJung
...
Re-organize platform-specific shims
Move platform-specific code to `shims::{posix::{linux, macos}, windows}`. Also make it private in these modules to ensure we are reasonably structured.
2020-06-27 11:27:36 +00:00
Ralf Jung
af5887e869
module organization: move platform-specific code to shims::{posix::{linux, macos}, windows}
2020-06-27 13:22:49 +02:00