Commit Graph

5862 Commits

Author SHA1 Message Date
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
5225225
eadeedde42 Handle uninit data in pthread_condattr_destroy 2021-12-05 19:47:29 +00:00
bors
4eadf666d3 Auto merge of #1932 - RalfJung:rustup, r=RalfJung
rustup

Cc https://github.com/rust-lang/rust/issues/91542
2021-12-05 16:03:07 +00:00
Ralf Jung
d537ed401d rustup 2021-12-05 11:02:20 -05:00
Tavian Barnes
b0a463334c 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-03 17:00:06 -05:00
bors
5e9cf62b89 Auto merge of #1929 - RalfJung:rustup, r=RalfJung
rustup

With https://github.com/rust-lang/rust/pull/91323 landed, we can remove these intrinsics from Miri.
2021-11-30 16:45:05 +00:00
Ralf Jung
70dd979a44 rustup 2021-11-30 11:44:19 -05:00
bors
9983e0fc63 Auto merge of #1927 - RalfJung:array-align-tests, r=RalfJung
add tests for alignment on array initialization

This adds regression tests for https://github.com/rust-lang/miri/issues/1925, https://github.com/rust-lang/miri/issues/1919.
2021-11-28 15:28:57 +00:00
Ralf Jung
ee666d8987 add tests for alignment on array initialization 2021-11-28 10:07:31 -05:00
bors
e62924e37d Auto merge of #1926 - RalfJung:rustup, r=RalfJung
rustup; stub support for some extern statics used for weak symbols
2021-11-27 22:53:32 +00:00
Ralf Jung
d800d1e2cb rustup; stub support for some extern statics used for weak symbols 2021-11-27 17:15:54 -05:00
bors
0949cd36c3 Auto merge of #1924 - RalfJung:ra, r=oli-obk
hack to work around RA quirk

This is a gross hack to work around https://github.com/rust-analyzer/rust-analyzer/issues/10793: calling `cargo-miri/miri` does the same thing as calling `./miri`.

`@oli-obk` this is the best I could come up with... not sure if we want to have this in the repo. I am also okay with carrying `cargo-miri/miri` locally.
2021-11-25 22:55:43 +00:00
Ralf Jung
5d71528e4d hack to work around RA quirk 2021-11-25 17:37:36 -05:00
bors
73cf2ba0c0 Auto merge of #1923 - RalfJung:more-simd, r=RalfJung
More portable SIMD: rem, shl, shr

Also make sure we catch the potential UB in div, rem, shl, shr.
2021-11-25 22:30:42 +00:00
Ralf Jung
4414d96323 implement shl and shr SIMD intrinsics 2021-11-25 17:26:37 -05:00
Ralf Jung
a534bbbf8a portable SIMD: add rem intrinsic; test div and rem intrinsic UB 2021-11-25 17:13:33 -05:00
bors
4f0faed6d2 Auto merge of #1922 - RalfJung:async-run-fut, r=RalfJung
async-fn test: make run_fut more general and entirely safe
2021-11-23 19:44:55 +00:00
Ralf Jung
c4502cbbe8 async-fn test: make run_fut more general and entirely safe 2021-11-23 14:33:00 -05:00
bors
2cd6fe88d8 Auto merge of #1921 - RalfJung:overflow-checks-off, r=RalfJung
test for overflow-checks=off

Strangely, if we call the functions in `std::ops`, we still get the panics. I assume that is because we build the stdlib with `-Cdebug-assertions=on`; probably the magic attribute that makes stdlib functions inherit overflow checks from the calling crate only works one way (namely to enable them when the calling crate asks for them, but not to disable them when the calling crate does not want them).
2021-11-23 19:08:06 +00:00
Ralf Jung
7dd1f0571c test for overflow-checks=off 2021-11-23 14:07:46 -05:00
bors
763a4455ac Auto merge of #1918 - RalfJung:simd_basics, r=RalfJung
portable SIMD: basic binops

First steps towards https://github.com/rust-lang/miri/issues/1912. Requires https://github.com/rust-lang/rust/pull/90999.
2021-11-21 03:40:28 +00:00
Ralf Jung
84027dcd22 rustup 2021-11-20 22:39:22 -05:00
Ralf Jung
b816cb94e7 implement SIMD sub, mul, div; also test i32 binops 2021-11-20 22:30:49 -05:00
Ralf Jung
0766da6fbe implement simd_add 2021-11-20 22:30:49 -05:00
bors
8c700f544c Auto merge of #1917 - RalfJung:rustup, r=RalfJung
rustup

Just a routine rustup, nothing to see here.
2021-11-18 02:13:28 +00:00
Ralf Jung
1593f38401 rustup 2021-11-17 21:12:45 -05:00
bors
b258eb3c27 Auto merge of #1911 - RalfJung:rename-track-tag, r=RalfJung
rename track-raw-pointers flag to tag-raw-pointers

The old flag name sounds too similar to `-Zmiri-track-pointer-tag`, which is a totally different kind of 'tracking'. This has lead to confusion in https://github.com/rust-lang/miri/issues/1907.
2021-11-17 16:08:13 +00:00
bors
e41c4790c1 Auto merge of #1915 - RalfJung:cron, r=RalfJung
tweak cron job time

15:00 UTC is 16:00 in Europe and 10:00 on the US East Coast (during winter time, and 1h later during summer time), so a good time in both places to see the email and react quickly. No need to run this in the middle of the night if nobody will fix the problem anyway.

Move it 5min past the full hour to avoid what is probably a rush of cronjobs on the full hour.
2021-11-17 15:43:32 +00:00
Ralf Jung
77095f8557 tweak cron job time 2021-11-17 10:34:32 -05:00
bors
76a3329f51 Auto merge of #1913 - RalfJung:rustdoc-miri, r=RalfJung
run rustdoc with the miri cfg flag

This is important to be able to control which doctests run with `cargo miri test`. In particular, this is required for https://github.com/rust-lang/rust/pull/90909 to work as intended.
2021-11-14 17:29:41 +00:00
Ralf Jung
a15539e911 run rustdoc with the miri cfg flag 2021-11-14 12:19:58 -05:00
Ralf Jung
d8bee92aee rename track-raw-pointers flag to tag-raw-pointers 2021-11-13 15:48:27 -05:00
bors
a8b976eb35 Auto merge of #1904 - camelid:uninit-num, r=RalfJung
Add flag to check for uninitialized numbers

Closes #1340.

Companion rustc PR that implements this in the Miri engine: rust-lang/rust#88670

r? `@RalfJung`
2021-11-10 19:50:47 +00:00
Noah Lev
6dd10820dd rustup
So that we get rust-lang/rust#88670.
2021-11-10 11:40:08 -08:00
Noah Lev
1cca2acf95 Add test for uninit raw ptrs 2021-11-10 11:36:42 -08:00
Noah Lev
b3be6b44b6 Add tests for -Zmiri-check-number-validity 2021-11-10 11:36:42 -08:00
Noah Lev
1659ef4206 Add docs for -Zmiri-check-number-validity 2021-11-10 11:36:42 -08:00
Noah Lev
e6a9b2ce68 Update Miri for detecting uninitialized numbers
This commit adds a `-Zmiri-check-number-initialization` flag to check
that integers and floats are initialized.

This commit also changes some shims to write at type `MaybeUninit<...>`
in order to prevent spurious errors from the uninit check.
2021-11-10 11:36:42 -08:00
bors
3f2c9ee17e Auto merge of #1905 - camelid:rustup, r=RalfJung
rustup

r? `@RalfJung`
2021-11-02 01:44:48 +00:00
Noah Lev
6d1d8c69a0 rustup 2021-11-01 16:12:38 -07:00
bors
9c18177cd3 Auto merge of #1902 - camelid:r-a, r=RalfJung
Add instructions for using rust-analyzer for Miri development

r? `@RalfJung`
2021-10-26 23:23:31 +00:00
Noah Lev
141bf38f23 Add instructions for using rust-analyzer for Miri development 2021-10-26 15:58:17 -07:00
bors
04e5c78c3f Auto merge of #1903 - bjorn3:rustup, r=oli-obk
rustup

Rustup for https://github.com/rust-lang/rust/pull/85830
2021-10-26 12:29:08 +00:00
bjorn3
9944a2daf3 rustup 2021-10-26 13:42:03 +02:00
bors
084c660c71 Auto merge of #1901 - RalfJung:rustup, r=RalfJung
rustup; add swap_remove test

Adds a test for https://github.com/rust-lang/rust/issues/90055
2021-10-21 13:50:07 +00:00
Ralf Jung
a6b12c229b rustup; add swap_remove test 2021-10-21 09:49:19 -04:00
bors
24a1d78a70 Auto merge of #1900 - RalfJung:rustup, r=RalfJung
rustup

Just making sure the CI failure in https://github.com/rust-lang/miri/runs/3879412292?check_suite_focus=true is truly intermittent.
2021-10-13 18:04:51 +00:00
Ralf Jung
4a44c33976 rustup 2021-10-13 14:04:14 -04:00