about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2024-08-07Don't use LLVM to compute -Ctarget-featureCaleb Zulawski-112/+120
2024-08-07Don't use LLVM's target featuresCaleb Zulawski-39/+84
2024-08-07Refactor and fill out target feature listsCaleb Zulawski-360/+293
2024-08-07Bless testsCaleb Zulawski-5/+5
2024-08-07Add +sse4.2 due to #128426Caleb Zulawski-4/+4
2024-08-07Add missing featuresCaleb Zulawski-0/+26
2024-08-07Fix codegen testsCaleb Zulawski-5/+5
2024-08-07Add test to ensure implied target features work with asm, and fix failing testsCaleb Zulawski-49/+44
2024-08-07Add implied target features to target_feature attributeCaleb Zulawski-31/+113
2024-08-07Auto merge of #128761 - matthiaskrgr:rollup-5p1mlqq, r=matthiaskrgrbors-1383/+2066
Rollup of 9 pull requests Successful merges: - #124944 (On trait bound mismatch, detect multiple crate versions in dep tree) - #125048 (PinCoerceUnsized trait into core) - #128406 (implement BufReader::peek) - #128539 (Forbid unused unsafe in vxworks-specific std modules) - #128687 (interpret: refactor function call handling to be better-abstracted) - #128692 (Add a triagebot mention for `library/Cargo.lock`) - #128710 (Don't ICE when getting an input file name's stem fails) - #128718 (Consider `cfg_attr` checked by `CheckAttrVisitor`) - #128751 (std::thread: set_name implementation proposal for vxWorks.) r? `@ghost` `@rustbot` modify labels: rollup
2024-08-07Rollup merge of #128751 - devnexen:vxworks_set_thread_name, r=tgross35Matthias Krüger-3/+30
std::thread: set_name implementation proposal for vxWorks.
2024-08-07Rollup merge of #128718 - jieyouxu:check-cfg_attr, r=nnethercoteMatthias Krüger-0/+170
Consider `cfg_attr` checked by `CheckAttrVisitor` I forgor about `cfg_attr` in #128581, it should be treated like `cfg`. Fixes #128716.
2024-08-07Rollup merge of #128710 - ChrisDenton:null, r=jieyouxuMatthias Krüger-3/+20
Don't ICE when getting an input file name's stem fails Fixes #128681 The file stem is only used as a user-friendly prefix on intermediary files. While nice to have, it's not the end of the world if it fails so there's no real reason to emit an error here. We can continue with a fixed name as we do when an anonymous string is used.
2024-08-07Rollup merge of #128692 - tgross35:update-triagebot, r=Mark-SimulacrumMatthias Krüger-0/+8
Add a triagebot mention for `library/Cargo.lock` Since [1], `Cargo.lock` was split into `Cargo.lock` and `library/Cargo.lock`. Update Triagebot to give the same warning for both. [1]: https://github.com/rust-lang/rust/pull/128534
2024-08-07Rollup merge of #128687 - RalfJung:interpret-call-refactor, r=WaffleLapkinMatthias Krüger-1330/+1354
interpret: refactor function call handling to be better-abstracted Add a new function `init_stack_frame` that pushes a stack frame and passes the arguments, and use that basically everywhere that the raw underlying `push_stack_frame` used to be called. This splits the previous monster function `eval_fn_call` into two parts: figuring out the MIR to call and the arguments to pass, and then actually setting up the stack frame. Also re-organize the files a bit: - The previous `terminator.rs` is split into a new `call.rs` with all the argument-passing logic, and the rest goes into `step.rs` where the other main dispatcher functions already live (in particular, `eval_statement`). - All the stack frame handling from `eval_context.rs` is moved to a new `stack.rs`.
2024-08-07Rollup merge of #128539 - biabbas:deny_unsafe, r=workingjubileeMatthias Krüger-0/+2
Forbid unused unsafe in vxworks-specific std modules Tracking issue #127747 Adding deny(unsafe_op_in_unsafe_fn) in VxWorks specific files did not cause any error. Most of VxWorks falls back on Unix libraries. So we'll have to wait for Unix changes. r? ```@workingjubilee```
2024-08-07Rollup merge of #128406 - lolbinarycat:bufreader_peek, r=Mark-SimulacrumMatthias Krüger-0/+55
implement BufReader::peek Part of https://github.com/rust-lang/rust/issues/128405
2024-08-07Rollup merge of #125048 - dingxiangfei2009:stable-deref, r=amanieuMatthias Krüger-4/+218
PinCoerceUnsized trait into core cc ``@Darksonn`` ``@wedsonaf`` ``@ojeda`` This is a PR to introduce a `PinCoerceUnsized` trait in order to make trait impls generated by the proc-macro `#[derive(SmartPointer)]`, proposed by [RFC](https://github.com/rust-lang/rfcs/blob/e17e19ac7ad1c8ccad55d4babfaee1aa107d1da5/text/3621-derive-smart-pointer.md#pincoerceunsized-1), sound. There you may find explanation, justification and discussion about the alternatives. Note that we do not seek stabilization of this `PinCoerceUnsized` trait in the near future. The stabilisation of this trait does not block the eventual stabilization process of the `#[derive(SmartPointer)]` macro. Ideally, use of `DerefPure` is more preferrable except this will actually constitute a breaking change. `PinCoerceUnsized` emerges as a solution to the said soundness hole while avoiding the breaking change. More details on the `DerefPure` option have been described in this [section](https://github.com/rust-lang/rfcs/blob/e17e19ac7ad1c8ccad55d4babfaee1aa107d1da5/text/3621-derive-smart-pointer.md#derefpure) of the RFC linked above. Earlier discussion can be found in this [Zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/136281-t-opsem/topic/Pin.20and.20soundness.20of.20unsizing.20coercions) and [rust-for-linux thread](https://rust-lang.zulipchat.com/#narrow/stream/425075-rust-for-linux/topic/.23.5Bderive.28SmartPointer.29.5D.20and.20pin.20unsoundness.20rfc.233621). try-job: dist-various-2
2024-08-07Rollup merge of #124944 - estebank:multiple-crate-versions, r=fee1-deadMatthias Krüger-43/+209
On trait bound mismatch, detect multiple crate versions in dep tree When encountering an E0277, if the type and the trait both come from a crate with the same name but different crate number, we explain that there are multiple crate versions in the dependency tree. If there's a type that fulfills the bound, and it has the same name as the passed in type and has the same crate name, we explain that the same type in two different versions of the same crate *are different*. ``` error[E0277]: the trait bound `Type: dependency::Trait` is not satisfied --> src/main.rs:4:18 | 4 | do_something(Type); | ------------ ^^^^ the trait `dependency::Trait` is not implemented for `Type` | | | required by a bound introduced by this call | help: you have multiple different versions of crate `dependency` in your dependency graph --> src/main.rs:1:5 | 1 | use bar::do_something; | ^^^ one version of crate `dependency` is used here, as a dependency of crate `bar` 2 | use dependency::Type; | ^^^^^^^^^^ one version of crate `dependency` is used here, as a direct dependency of the current crate note: two types coming from two different versions of the same crate are different types even if they look the same --> /home/gh-estebank/crate_versions/baz-2/src/lib.rs:1:1 | 1 | pub struct Type; | ^^^^^^^^^^^^^^^ this type doesn't implement the required trait | ::: /home/gh-estebank/crate_versions/baz/src/lib.rs:1:1 | 1 | pub struct Type; | ^^^^^^^^^^^^^^^ this type implements the required trait 2 | pub trait Trait {} | --------------- this is the required trait note: required by a bound in `bar::do_something` --> /home/gh-estebank/crate_versions/baz/src/lib.rs:4:24 | 4 | pub fn do_something<X: Trait>(_: X) {} | ^^^^^ required by this bound in `do_something` ``` Address #22750.
2024-08-06Auto merge of #128748 - matthiaskrgr:rollup-dzvi5f7, r=matthiaskrgrbors-61/+234
Rollup of 7 pull requests Successful merges: - #128369 (rustc_lint: make `let-underscore-lock` translatable) - #128377 (Fix ICE Caused by Incorrectly Delaying E0107) - #128517 (Fallback to string formatting if source is not available for lint) - #128685 (Remove the root Cargo.lock from the rust-src component) - #128693 (rustdoc-search: account for numeric disambiguators on impls) - #128720 (Pass the right `ParamEnv` to `might_permit_raw_init_strict`) - #128736 (Fix rustdoc missing handling of remap-path-prefix option) r? `@ghost` `@rustbot` modify labels: rollup
2024-08-06std::thread: set_name implementation proposal for vxWorks.David Carlier-3/+30
2024-08-06fix testEsteban Küber-15/+19
2024-08-06Rollup merge of #128736 - GuillaumeGomez:fix-remap-path-prefix, r=notriddleMatthias Krüger-0/+26
Fix rustdoc missing handling of remap-path-prefix option Fixes https://github.com/rust-lang/rust/issues/69264. cc `@weihanglo` r? `@notriddle`
2024-08-06Rollup merge of #128720 - y21:issue119620, r=compiler-errorsMatthias Krüger-19/+36
Pass the right `ParamEnv` to `might_permit_raw_init_strict` Fixes #119620 `might_permit_raw_init_strict` currently passes an empty `ParamEnv` to the `InterpCx`, instead of the actual `ParamEnv` that was passed in to `check_validity_requirement` at callsite. This leads to ICEs such as the linked issue where for `UnsafeCell<*mut T>` we initially get the layout with the right `ParamEnv` (which suceeds because it can prove that `T: Sized` and therefore `UnsafeCell<*mut T>` has a known layout) but then do the rest with an empty `ParamEnv` where `T: Sized` is not known to hold so getting the layout for `*mut T` later fails. This runs into an assertion in other layout code where it's making the (valid) assumption that, when we already have a layout for a struct (`UnsafeCell<*mut T>`), getting the layout of one of its fields (`*mut T`) should also succeed, which wasn't the case here due to using the wrong `ParamEnv`. So, this PR changes it to just use the same `ParamEnv` all the way throughout.
2024-08-06Rollup merge of #128693 - notriddle:notriddle/impl-disambiguator-2024, ↵Matthias Krüger-7/+52
r=GuillaumeGomez rustdoc-search: account for numeric disambiguators on impls Fixes #128676
2024-08-06Rollup merge of #128685 - bjorn3:rust_src_remove_leftover, r=onur-ozkanMatthias Krüger-4/+0
Remove the root Cargo.lock from the rust-src component The Cargo.lock in library/ should be used instead. Including the Cargo.lock for the root workspace is both unnecessary and confusing. Missed in https://github.com/rust-lang/rust/pull/128534
2024-08-06Rollup merge of #128517 - clubby789:overflowing-lit-span, r=petrochenkovMatthias Krüger-9/+13
Fallback to string formatting if source is not available for lint Fixes #128445
2024-08-06Rollup merge of #128377 - veera-sivarajan:fix-128249, r=davidtwcoMatthias Krüger-14/+98
Fix ICE Caused by Incorrectly Delaying E0107 Fixes #128249 For the following code: ```rust trait Foo<T> {} impl Foo<T: Default> for u8 {} ``` #126054 added some logic to delay emitting E0107 as the names of associated type `T` in the impl header and generic parameter `T` in `trait Foo` match. But it failed to ensure whether such unexpected associated type bounds are coming from a impl block header. This caused an ICE as the compiler was delaying E0107 for code like: ```rust trait Trait<Type> { type Type; fn method(&self) -> impl Trait<Type: '_>; } ``` because it assumed the associated type bound `Type: '_` is for the generic parameter `Type` in `trait Trait` since the names are same. This PR adds a check to ensure that E0107 is delayed only in the context of impl block header.
2024-08-06Rollup merge of #128369 - GrigorenkoPV:let-underscore-translatable, r=davidtwcoMatthias Krüger-8/+9
rustc_lint: make `let-underscore-lock` translatable
2024-08-06Move test to be make instead of uiEsteban Küber-132/+47
2024-08-06Change test to be only-linux and ignore-wasm32Esteban Küber-3/+4
2024-08-06fix rebaseEsteban Küber-2/+3
2024-08-06Add `help` about using `cargo tree`Esteban Küber-11/+14
2024-08-06Add test for mixing types from two incompatible crate versionsEsteban Küber-0/+133
2024-08-06On trait bound mismatch, detect multiple crate versions in dep treeEsteban Küber-39/+124
When encountering an E0277, if the type and the trait both come from a crate with the same name but different crate number, we explain that there are multiple crate versions in the dependency tree. If there's a type that fulfills the bound, and it has the same name as the passed in type and has the same crate name, we explain that the same type in two different versions of the same crate *are different*. ``` error[E0277]: the trait bound `Type: dependency::Trait` is not satisfied --> src/main.rs:4:18 | 4 | do_something(Type); | ------------ ^^^^ the trait `dependency::Trait` is not implemented for `Type` | | | required by a bound introduced by this call | help: you have multiple different versions of crate `dependency` in your dependency graph --> src/main.rs:1:5 | 1 | use bar::do_something; | ^^^ one version of crate `dependency` is used here, as a dependency of crate `bar` 2 | use dependency::Type; | ^^^^^^^^^^ one version of crate `dependency` is used here, as a direct dependency of the current crate note: two types coming from two different versions of the same crate are different types even if they look the same --> /home/gh-estebank/crate_versions/baz-2/src/lib.rs:1:1 | 1 | pub struct Type; | ^^^^^^^^^^^^^^^ this type doesn't implement the required trait | ::: /home/gh-estebank/crate_versions/baz/src/lib.rs:1:1 | 1 | pub struct Type; | ^^^^^^^^^^^^^^^ this type implements the required trait 2 | pub trait Trait {} | --------------- this is the required trait note: required by a bound in `bar::do_something` --> /home/gh-estebank/crate_versions/baz/src/lib.rs:4:24 | 4 | pub fn do_something<X: Trait>(_: X) {} | ^^^^^ required by this bound in `do_something` ``` Address #22750.
2024-08-06Maintain highlighting in `note` and `help` even when they have a spanEsteban Küber-2/+26
2024-08-06Add regression test for #69264Guillaume Gomez-0/+24
2024-08-06Fix rustdoc missing handling of `remap-path-prefix` optionGuillaume Gomez-0/+2
2024-08-06rustdoc-search: account for numeric disambiguators on implsMichael Howell-7/+52
Fixes #128676
2024-08-06various cleanups based on reviewRalf Jung-55/+54
2024-08-06Auto merge of #128245 - Oneirical:total-linkage-ownage, r=jieyouxubors-36/+63
Migrate `cdylib-dylib-linkage` `run-make` test to rmake Part of #121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html). ~~Those sysroot tests are always fun. I'm getting local errors that don't make a lot of sense about my own sysroot not existing, so I am trying this in CI to see what happens.~~ ~~EDIT: I am getting the same error here. The strange thing is, when I try to navigate to `/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib` on my personal computer, the directory does exist, but the error message is that the directory does not.~~ EDIT 2: The sysroot path just needed to be trimmed! Please try: // try-job: x86_64-msvc // passed previously try-job: x86_64-mingw try-job: x86_64-gnu-llvm-18 try-job: i686-msvc try-job: aarch64-apple
2024-08-06make some Frame fields more privateRalf Jung-21/+25
2024-08-06interpret: refactor function call handling to be better-abstractedRalf Jung-1313/+1334
2024-08-06Auto merge of #126804 - estebank:short-error-primary-label, r=davidtwcobors-14/+34
On short error format, append primary span label to message The `error-format=short` output only displays the path, error code and main error message all in the same line. We now add the primary span label as well after the error message, to provide more context.
2024-08-06check_attr: treat cfg_attr like cfg许杰友 Jieyou Xu (Joe)-0/+1
2024-08-06tests: add regression test to make sure `cfg_attr` isn't considered unhandled许杰友 Jieyou Xu (Joe)-0/+169
2024-08-06On short error format, append primary span label to messageEsteban Küber-14/+34
The `error-format=short` output only displays the path, error code and main error message all in the same line. We now add the primary span label as well after the error message, to provide more context.
2024-08-06Auto merge of #128200 - estebank:normalize-whitespace, r=pnkfelixbors-30/+38
Change output normalization logic to be linear against size of output Modify the rendered output normalization routine to scan each character *once* and construct a `String` to be printed out to the terminal *once*, instead of using `String::replace` in a loop multiple times. The output doesn't change, but the time spent to prepare a diagnostic is now faster (or rather, closer to what it was before #127528).
2024-08-06Auto merge of #125558 - Amanieu:const-asm-type, r=lcnrbors-265/+295
Tweak type inference for `const` operands in inline asm Previously these would be treated like integer literals and default to `i32` if a type could not be determined. To allow for forward-compatibility with `str` constants in the future, this PR changes type inference to use an unbound type variable instead. The actual type checking is deferred until after typeck where we still ensure that the final type for the `const` operand is an integer type. <!-- If this PR is related to an unstable feature or an otherwise tracked effort, please link to the relevant tracking issue here. If you don't know of a related tracking issue or there are none, feel free to ignore this. This PR will get automatically assigned to a reviewer. In case you would like a specific user to review your work, you can assign it to them by using r​? <reviewer name> -->
2024-08-06pass the right `ParamEnv` to `might_permit_raw_init_strict`y21-19/+36