Commit Graph

5759 Commits

Author SHA1 Message Date
Ralf Jung
42b144ee8c rustup 2022-01-26 10:54:55 -05:00
bors
aea10ca101 Auto merge of #1961 - ojeda:spurious-maybe_uninit_extra, r=oli-obk
Remove spurious `maybe_uninit_extra`

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2022-01-11 17:37:37 +00:00
Miguel Ojeda
922962f662 Remove spurious maybe_uninit_extra
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2022-01-11 16:17:52 +01:00
bors
deb9bfd246 Auto merge of #1952 - RalfJung:self-referential, r=RalfJung
exclude mutable references to !Unpin types from uniqueness guarantees

This basically works around https://github.com/rust-lang/unsafe-code-guidelines/issues/148 by not requiring uniqueness any more for mutable references to self-referential generators. That corresponds to [the same work-around that was applied in rustc itself](b815532674/compiler/rustc_middle/src/ty/layout.rs (L2482)).

I am not entirely sure if this is a good idea since it might hide too many errors in case types are "accidentally" `!Unpin`. OTOH, our test suite still passes, and to my knowledge the vast majority of types is `Unpin`. (`place.layout.ty` is monomorphic, we should always exactly know which type this is.)
2022-01-09 14:10:00 +00:00
bors
c8b3cf0060 Auto merge of #1960 - RalfJung:rustup, r=RalfJung
rustup

Cc https://github.com/rust-lang/rust/issues/92691
2022-01-09 13:50:34 +00:00
Ralf Jung
ee6198fb98 rustup 2022-01-09 14:50:03 +01:00
bors
5d21a5d65f Auto merge of #1959 - RalfJung:rustup, r=RalfJung
rustup
2022-01-08 16:28:39 +00:00
Ralf Jung
9376bf5d4d rustup 2022-01-08 17:27:48 +01:00
bors
824816c973 Auto merge of #1956 - RalfJung:stack-pop-cleanup, r=RalfJung
adjust for StackPopCleanup::None rename

This is the Miri side of https://github.com/rust-lang/rust/pull/92551
2022-01-05 08:56:05 +00:00
Ralf Jung
522f40b086 rustup 2022-01-05 09:55:29 +01:00
Ralf Jung
81751a2a00 adjust for StackPopCleanup::None rename 2022-01-04 11:14:55 +01:00
bors
ad0c24936c Auto merge of #1954 - RalfJung:rustup, r=RalfJung
rustup

Cc https://github.com/rust-lang/rust/issues/92527
2022-01-03 22:25:44 +00:00
Ralf Jung
808f794115 rustup 2022-01-03 22:54:58 +01:00
bors
e9343150de Auto merge of #1953 - klensy:deps-up, r=RalfJung
update crate rustc_version 0.3 -> 0.4 to remove some deps

This removes some deps and pulls only one version of `rustc_version` crate.
2022-01-03 09:16:06 +00:00
klensy
45442c80b8 update crate rustc_version 0.3 -> 0.4 to remove some deps 2022-01-03 02:47:42 +03:00
Ralf Jung
77cec811b4 exclude mutable references to !Unpin types from uniqueness guarantees 2022-01-01 19:01:46 +01:00
bors
9132ee3cd8 Auto merge of #1951 - RalfJung:rustup, r=RalfJung
rustup

The previously pinned toolchain was affected by https://github.com/rust-lang/rust/issues/92163, let's switch to one where that problem is fixed.
2022-01-01 17:54:02 +00:00
Ralf Jung
a58d43cf31 rustup 2022-01-01 18:52:45 +01:00
bors
d307e6c197 Auto merge of #1928 - RalfJung:fn-abi, r=RalfJung
adjust for FnAbi changes

This is the Miri side of https://github.com/rust-lang/rust/pull/91342.
2021-12-24 11:04:48 +00:00
Ralf Jung
5ab0ea67f2 adjust output for calling convention check 2021-12-24 12:02:23 +01:00
Ralf Jung
a312297973 adjust for FnAbi changes 2021-12-24 12:02:22 +01:00
bors
2170d7a7c9 Auto merge of #1949 - RalfJung:miri-lib-src, r=oli-obk
add and document MIRI_LIB_SRC env var to set the source from which Miri builds the standard library

This is just an alias of `XARGO_RUST_SRC`, but avoids exposing how exactly we use xargo.
2021-12-23 15:54:25 +00:00
Ralf Jung
e51810df2c add and document MIRI_LIB_SRC env var to set the source from which Miri builds the standard library 2021-12-23 16:04:09 +01:00
bors
6f3061b18e Auto merge of #1945 - saethlin:better-sb-tracking, r=RalfJung
Provide slightly better notes when tracking a pointer tag

I slapped this in as a sort of advanced println-based debugging when trying to figure out a track-raw-pointers finding in `smallvec`. Perhaps this looks like a good idea to you all?

EDIT: User scenario

Run `MIRIFLAGS=-Ztag-raw-pointers cargo miri test`, get a diagnostic that looks like
```
error: Undefined Behavior: trying to reborrow for SharedReadOnly at alloc99465+0x9, but parent tag <265507> does not have an appropriate item in the borrow stack
```
So now run `MIRIFLAGS=-Ztag-raw-pointers -Zmiri-track-pointer-tag=265507 cargo miri test`
Old:
```
note: tracking was triggered
   --> src/lib.rs:822:36
    |
822 |                 vec: NonNull::from(self),
    |                                    ^^^^ popped tracked tag for item [SharedReadOnly for <265507>]
```
New:
```
note: tracking was triggered
   --> src/lib.rs:822:36
    |
822 |                 vec: NonNull::from(self),
    |                                    ^^^^ popped tracked tag for item [SharedReadOnly for <265507>] due to Write access for <265356>
```
So that if a user is now beginning to question their sanity because they don't really understand SB yet, they can then track the tag which caused the parent tag to be removed from the stack to be sure what's going on here:
```
   --> src/lib.rs:792:5
    |
792 | /     pub fn drain<R>(&mut self, range: R) -> Drain<'_, A>
793 | |     where
794 | |         R: RangeBounds<usize>,
795 | |     {
...   |
824 | |         }
825 | |     }
    | |_____^ created tag 265356
```

The existing diagnostic can tell you where the tag you'd need was invalidated, but it cannot tell you what and why that tag was invalidated.
2021-12-21 21:25:52 +00:00
Ben Kimock
cd6921923c Provide better notes when tracking a pointer tag 2021-12-21 12:15:29 -05:00
bors
e969615937 Auto merge of #1947 - RalfJung:macos-is-from-the-stone-age, r=RalfJung
macOS-compatible realpath

Make behavior consistent between Linux and macOS even though macOS lacks some basic shell tools
2021-12-20 22:17:40 +00:00
Ralf Jung
a9dd9b9571 macOS-compatible realpath 2021-12-20 23:14:17 +01:00
bors
cac6759451 Auto merge of #1944 - RalfJung:rustup, r=RalfJung
rustup
2021-12-19 18:49:41 +00:00
Ralf Jung
c0f1670e47 rustup 2021-12-19 19:49:05 +01:00
bors
812fd79e63 Auto merge of #1943 - RalfJung:readme, r=RalfJung
readme: be more explicit about the toolchain

Fixes https://github.com/rust-lang/miri/issues/1942

`@robamler` would this have helped?
2021-12-19 16:53:37 +00:00
Ralf Jung
db74c1c030 readme: be more explicit about the toolchain 2021-12-19 17:46:17 +01:00
bors
237390785d Auto merge of #1940 - RalfJung:xargo, r=RalfJung
require xargo 0.3.23

Fixes https://github.com/rust-lang/miri/issues/1939
2021-12-16 14:23:08 +00:00
Ralf Jung
b44f7ea079 require xargo 0.3.23 2021-12-16 15:20:58 +01:00
bors
2eb3b37c91 Auto merge of #1938 - RalfJung:test, r=RalfJung
add regression test

Adds a regression test for https://github.com/rust-lang/rust/issues/91636 (which was fixed by https://github.com/rust-lang/rust/pull/91856)
2021-12-15 18:11:57 +00:00
Ralf Jung
4da38299fa looks like the asm macro is stable :D 2021-12-15 19:11:18 +01:00
Ralf Jung
d8f7b831e7 add regression test 2021-12-15 19:11:08 +01:00
bors
65cbcb0d05 Auto merge of #1937 - RalfJung:rustup, r=RalfJung
rustup

I cannot reproduce the [nightly CI failure](https://github.com/rust-lang/miri/runs/4521890481?check_suite_focus=true) so let's see what happens...
2021-12-15 16:10:43 +00:00
Ralf Jung
44cad75069 fix iteration-order-dependent output 2021-12-15 16:51:40 +01:00
Ralf Jung
6dcb5389cd update lockfile 2021-12-14 18:20:03 +01:00
Ralf Jung
7670a5657a rustup 2021-12-14 18:14:17 +01:00
bors
dadcbebfbd Auto merge of #1934 - RalfJung:rustup, r=RalfJung
rustup

Cc https://github.com/rust-lang/rust/issues/91649
2021-12-08 15:19:55 +00:00
Ralf Jung
50b9b701ab rustup 2021-12-08 10:01:51 -05:00
bors
23a9d02748 Auto merge of #1933 - 5225225:1931-condvar-false-positive, r=RalfJung
Fix false positive use of uninit bytes when calling `libc::pthread_condattr_destroy`

Fixes: #1931
2021-12-08 14:51:53 +00:00
5225225
fd830e7b27
Code comment changes from code review
Co-authored-by: Ralf Jung <post@ralfj.de>
2021-12-07 17:25:28 +00:00
5225225
250d450593 Add comment explaining false positives in _destroy 2021-12-07 17:24:29 +00:00
5225225
a4b2fc0c5a Adjust pthread tests 2021-12-06 21:50:14 +00:00
5225225
f0d915703c Add tests for double destroying various pthread items 2021-12-06 21:15:02 +00:00
5225225
ae120563cc Destroying any uninit posix_ object is UB 2021-12-06 19:26:13 +00:00
bors
81e59e6b92 Auto merge of #1930 - tavianator:avoid-adjacent-allocations, r=RalfJung
intptrcast: Never allocate two objects directly adjecent

When two objects directly follow each other in memory, what is the
provenance of an integer cast to a pointer that points directly between
them?  For a zero-size region, it could point into the end of the first
object, or the start of the second.

We can avoid answering this difficult question by simply never
allocating two objects directly beside each other.  This fixes some of
the false positives from #1866.
2021-12-06 01:33:55 +00:00
Ralf Jung
6a98c64c8b
final tweaks 2021-12-05 20:33:20 -05:00