Commit graph

940 commits

Author SHA1 Message Date
Ralf Jung
c5aebfb934 Merge from rustc 2023-06-02 10:03:49 +02:00
Ralf Jung
777db72b08 Preparing for merge from rustc 2023-06-02 10:03:43 +02:00
Deadbeef
4f83717cf7 Use translatable diagnostics in rustc_const_eval 2023-06-01 14:45:18 +00:00
Urgau
32d4e1c3c7 Adjust tests for newly uplifted cast_ref_to_mut lint 2023-05-31 13:42:53 +02:00
bors
47bf8e734f Auto merge of #2908 - RalfJung:bench, r=oli-obk
CI: test ./miri bench
2023-05-31 10:12:49 +00:00
Piotr Osiewicz
91cb951ee9 miri-script: Transform Windows paths to unix.
python3 snippet used to fill $MIRIDIR variable returns native paths.
Down the line in `bench` subcommand this leads to benchmark setup
failure, preventing contributors from running benchmarks on Windows
hosts.

This commit replaces usage of native os.path module with pathlib, which
explicitly converts paths to Unix flavour.
2023-05-31 11:36:49 +02:00
bors
fb35803cb7 Auto merge of #2907 - RalfJung:rustup, r=RalfJung
Rustup
2023-05-31 09:20:10 +00:00
Ralf Jung
bfc897ec07 CI: test ./miri bench 2023-05-31 11:00:34 +02:00
Ralf Jung
5304e40b93 Merge from rustc 2023-05-31 10:44:36 +02:00
Ralf Jung
70e6b2680c Preparing for merge from rustc 2023-05-31 10:44:29 +02:00
bors
1ac91624d1 Auto merge of #2888 - Vanille-N:tb-diags, r=RalfJung
TB diagnostics: avoid printing irrelevant events

History contains some events that are relevant to the location but not useful to understand the error.
We can make the selection of events more precise, from only "does it affect the location" to also "is it relevant for this kind of error"

This is also the occasion to fix https://github.com/rust-lang/miri/pull/2867#issuecomment-1530065511

[Solved] Draft: find a way for blanks in the history to not be confusing, as with the current version the history can show the creation as `Reserved` then show where it transitioned from `Frozen` to `Disabled`, but it will say nothing of the `Reserved -> Frozen` leading up to it.
2023-05-31 08:44:17 +00:00
bors
578bcbc2b4 Auto merge of #112083 - scottmcm:simpler-range-next, r=thomcc
Make `TrustedStep` require `Copy`

All the implementations of the trait already are `Copy`, and this seems to be enough to simplify the implementations enough to make the MIR inliner willing to inline basics like `Range::next`.

r? `@thomcc`
2023-05-30 07:27:05 +00:00
Ben Kimock
55df622b35 Merge from rustc 2023-05-29 20:27:03 -04:00
Ben Kimock
4cff01e1c6 Preparing for merge from rustc 2023-05-29 20:26:59 -04:00
Scott McMurray
50e01f4d68 Update a MIRI fake-time test that this makes "faster" 2023-05-29 13:57:18 -07:00
Ben Kimock
fe69acfdf0 Merge from rustc 2023-05-28 22:03:06 -04:00
Ben Kimock
c5013ce996 Preparing for merge from rustc 2023-05-28 22:03:00 -04:00
Nicholas Nethercote
781111ef35 Use Cow in {D,Subd}iagnosticMessage.
Each of `{D,Subd}iagnosticMessage::{Str,Eager}` has a comment:
```
// FIXME(davidtwco): can a `Cow<'static, str>` be used here?
```
This commit answers that question in the affirmative. It's not the most
compelling change ever, but it might be worth merging.

This requires changing the `impl<'a> From<&'a str>` impls to `impl
From<&'static str>`, which involves a bunch of knock-on changes that
require/result in call sites being a little more precise about exactly
what kind of string they use to create errors, and not just `&str`. This
will result in fewer unnecessary allocations, though this will not have
any notable perf effects given that these are error paths.

Note that I was lazy within Clippy, using `to_string` in a few places to
preserve the existing string imprecision. I could have used `impl
Into<{D,Subd}iagnosticMessage>` in various places as is done in the
compiler, but that would have required changes to *many* call sites
(mostly changing `&format("...")` to `format!("...")`) which didn't seem
worthwhile.
2023-05-29 09:23:43 +10:00
Neven Villani
cb75f21b05
more precise filtering of events
impl of is_relevant on transitions makes for much less noise in error messages

Co-authored-by: Ralf Jung <post@ralfj.de>
2023-05-27 17:20:35 +02:00
Amanieu d'Antras
de607f1b5c Add support for nested panics to miri 2023-05-27 16:35:16 +02:00
Ben Kimock
5a54d34ff7 rustup 2023-05-26 08:06:06 -04:00
Ben Kimock
ad60608444 Merge from rustc 2023-05-26 07:47:45 -04:00
Ben Kimock
9ffd3f9410 Preparing for merge from rustc 2023-05-26 07:47:25 -04:00
Michael Goulet
c2e3521bfb
Rollup merge of #111950 - cjgillot:expn-noinline, r=oli-obk
Remove ExpnKind::Inlined.

Suggested in https://github.com/rust-lang/rust/pull/111815#issuecomment-1561903339

r? ``@oli-obk``
2023-05-25 13:58:02 -07:00
bors
a2b1646c59 Auto merge of #86844 - bjorn3:global_alloc_improvements, r=pnkfelix
Support #[global_allocator] without the allocator shim

This makes it possible to use liballoc/libstd in combination with `--emit obj` if you use `#[global_allocator]`. This is what rust-for-linux uses right now and systemd may use in the future. Currently they have to depend on the exact implementation of the allocator shim to create one themself as `--emit obj` doesn't create an allocator shim.

Note that currently the allocator shim also defines the oom error handler, which is normally required too. Once `#![feature(default_alloc_error_handler)]` becomes the only option, this can be avoided. In addition when using only fallible allocator methods and either `--cfg no_global_oom_handling` for liballoc (like rust-for-linux) or `--gc-sections` no references to the oom error handler will exist.

To avoid this feature being insta-stable, you will have to define `__rust_no_alloc_shim_is_unstable` to avoid linker errors.

(Labeling this with both T-compiler and T-lang as it originally involved both an implementation detail and had an insta-stable user facing change. As noted above, the `__rust_no_alloc_shim_is_unstable` symbol requirement should prevent unintended dependence on this unstable feature.)
2023-05-25 16:59:57 +00:00
Camille GILLOT
3a423c3feb Manually add inlined frames in the interpreter stacktrace. 2023-05-25 16:43:14 +00:00
bors
053edf46bb Auto merge of #2901 - oli-obk:noisy, r=RalfJung
Hide full miri command line in `./miri run-dep`

fixes #2443
2023-05-23 10:03:01 +00:00
Oli Scherer
0f5ac8372b Hide full miri command line in ./miri run-dep 2023-05-23 07:51:09 +00:00
Oli Scherer
90459e8173 Update to latest clippy 2023-05-23 07:25:16 +00:00
Oli Scherer
32e52e8fdd Merge from rustc 2023-05-23 06:56:31 +00:00
Oli Scherer
a43c5d8591 Preparing for merge from rustc 2023-05-23 06:56:21 +00:00
Dylan DPC
71f78682be
Rollup merge of #111756 - Urgau:rename_drop_forget_copy_ref_lints, r=fee1-dead
Rename `{drop,forget}_{copy,ref}` lints to more consistent naming

This PR renames previous uplifted lints in https://github.com/rust-lang/rust/pull/109732 to more consistent naming.

I followed the renaming done [here](https://github.com/rust-lang/rust/issues/53224) and also advocated in this [clippy issue](https://github.com/rust-lang/rust-clippy/issues/2845):
   - `drop_copy` to `dropping_copy_types`
   - `forget_copy` to `forgetting_copy_types`
   - `drop_ref` to `dropping_references`
   - `forget_ref` to `forgetting_references`
2023-05-23 00:32:19 +05:30
Ben Kimock
56eb08735b Use a signal handler to observe ctrl+c and cleanly drop the measureme profiler 2023-05-21 13:09:15 -04:00
Urgau
c93d9c1794 Rename drop_ref lint to dropping_references 2023-05-21 14:16:41 +02:00
Urgau
1c7ab18c08 Rename drop_copy lint to dropping_copy_types 2023-05-21 13:37:32 +02:00
Maybe Waffle
140cdcbc9d Drive-by-cleanup: Don't emit thir::ExprKind::NeverToAny for ! -> ! 2023-05-19 21:50:01 +04:00
Ralf Jung
4014b17d86 Merge from rustc 2023-05-18 11:02:09 +02:00
Ralf Jung
d4ce8edc00 Preparing for merge from rustc 2023-05-18 11:00:59 +02:00
Nilstrieb
3e34be004e
Rollup merge of #111602 - tmiasko:erroneous-constant-used, r=oli-obk
Suppress "erroneous constant used" for constants tainted by errors

When constant evaluation fails because its MIR is tainted by errors,
suppress note indicating that erroneous constant was used, since those
errors have to be fixed regardless of the constant being used or not.

Fixes #110891.
2023-05-16 11:39:39 +02:00
Ralf Jung
ed0573fb2a Merge from rustc 2023-05-16 10:34:36 +02:00
Ralf Jung
0331912681 Preparing for merge from rustc 2023-05-16 10:34:29 +02:00
John Kåre Alsaker
fff20a703d Move expansion of query macros in rustc_middle to rustc_middle::query 2023-05-15 08:49:13 +02:00
Tomasz Miąsko
67f455afe1 Suppress "erroneous constant used" for constants tainted by errors
When constant evaluation fails because its MIR is tainted by errors,
suppress note indicating that erroneous constant was used, since those
errors have to be fixed regardless of the constant being used or not.
2023-05-15 00:00:00 +00:00
bors
405fe11b24 Auto merge of #2895 - RalfJung:simd_bitmask, r=RalfJung
support array return types in simd_bitmask

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

As usual I am stomped by the simd_bitmask behavior wrt endianess. I confirmed that for little endian, Miri matches what rustc currently does, but I can't test rustc on big endian. `@workingjubilee` `@calebzulawski` could you have a look whether those new tests make sense?
2023-05-13 18:21:08 +00:00
Ralf Jung
e75d91d22d support array return types in simd_bitmask 2023-05-13 20:20:40 +02:00
Ralf Jung
fe63dc3715 cargo-miri: fix forwarding arguments to cargo 2023-05-13 19:02:19 +02:00
Ralf Jung
10540a2c79 implement SIMD ptr casts 2023-05-13 13:52:08 +02:00
Ralf Jung
7431970758 fmt and fix lint 2023-05-13 10:57:01 +02:00
Ralf Jung
7b1cb69efa Merge from rustc 2023-05-13 10:52:38 +02:00
Ralf Jung
b0a621e62c Preparing for merge from rustc 2023-05-13 10:52:26 +02:00