Repository navigation
Rollup of 14 pull requests - #164697
Closed
JonathanBrouwer wants to merge 49 commits into
Closed
Rollup of 14 pull requests#164697JonathanBrouwer wants to merge 49 commits into
JonathanBrouwer wants to merge 49 commits into
Conversation
Rust currently ignores LLVM diagnostic kinds that it does not know about. This means that we sometimes ignore error diagnostics, which can then result in silent miscompiles. This exposes `LLVMGetDiagInfoSeverity` returning `DiagnosticSeverity`, renamed from `DiagnosticLevel` to match LLVM terminology. Custom code to fetch the diagnostic severity for inline asm diagnostics can then be dropped. For unknown diagnostics, we emit a warning/error depending on severity. Notes and remarks continue to be ignored. One oddity I ran into along the way is that the linker diagnostic has severity error, but we only report a warning. I've kept this for now as we still error down the line and this ends up providing a bit more information (which file the duplicate symbol originates from).
Merge the PGO, Unsupported into UnknownDiagnostic and rename it to Other. We don't do anything special for them, so there is no need to represent them differently.
Adds an entry for `recursion_limit` to `library/core/src/attribute_docs.rs` using `#[doc(attribute = "...")]`.
These are especially useful for constructing types and paths referring to primitives.
It is only used in one place and it's easier to do the check directly in `debug.rs`.
Several small changes to remove some unhelpful helpers.
As I understand it, this would only be needed if the crate defining the derive macros (which is `core`) was using edition 2015. Since `core` uses edition 2024, there is in this case no difference between global and local and we can skip the leading `::`.
Previously, `std_path` converted the given `&[Symbol]` to a `Vec<Ident>` by prepending a `$crate::` and mapping each `Symbol` to an `Ident`. This commit changes the functions that previously took `Vec<Ident>` to directly take `Path` instead, and updates `std_path` to also directly return a `Path`. This allows directly prepending the `$crate::` to the resulting `segments`. It also allows constructing a `Path` from `&[Ident]` instead of `Vec<Ident>`.
`new_path` is just a obsolete trivial wrapper around `cx.std_path_all` now.
Passing around `type_ident` everywhere is what the old code did as well, but it's actually only needed in two places.
And rename other places that were called `ident` but took a `Symbol` to `name` too.
…attribute, r=JohnTitor Document the `recursion_limit` built-in attribute Document the `recursion_limit` built-in attribute in std via `#[doc(attribute = "recursion_limit")]`, covering: - what the limit applies to (macro expansion, auto-dereference) - the default (128) and how to raise it - the diagnostics produced when the limit is reached - a note on when raising it is appropriate As claimed in rust-lang#157604 (comment). Part of rust-lang#157604.
tier 3 target policy: target CPU and features must be supported by upstream backend I am proposing we clarify this point in our tier 3 target policy: it's not enough to just generate some assembly; whatever values are set for target CPU and target features must actually be recognized by the backend. In particular, if a target emits a warning like this when used without any `-C` flag, it does not satisfy the policy: ``` 'esp32s3' is not a recognized processor for this target (ignoring processor) ``` The context here is rust-lang#162828: we landed the xtensa targets two years ago when they had basically no upstream LLVM support, and even now we have one target that uses a CPU that upstream LLVM does not recognize. I think we should consider this target as not satisfying our policy.
use default_field_values in declare_lint Also eliminates some unreachable!() branches :)
…nt-abi-checks, r=adwinwhite Skip redundant monomorphization checks ## Summary This PR attempts to avoid unnecessary work during call-site ABI checks. On main, we instantiate generic arguments and normalize the callee type, but then immediately return for Rust ABIs and LLVM intrinsics. Since the ABI doesn't depend on generic arguments, we can instead check it first and skip that preparation if the subsequent checks would be a no-op.
…=JohnTitor doc: added addtional docs for Write ## Changes - Added docs for `Write` with example. Close rust-lang#164466
…de, r=JohnTitor stabilize ExitCodeExt for Windows Passed FCP in rust-lang#111688 (comment) Closes rust-lang#111688
Touch up attribute docs
…bzol tidy: use repository-relative path for style checks fixes rust-lang#164567 when `remap-debuginfo = true`, `file!()` returns a remapped path that doesn't match the filesystem path used by tidy. this prevents tidy from recognizing `style.rs` as its own implementation, causing it to report style violations within the file. **use a repository-relative path instead, consistent with the existing handling of codegen.rs.** r? @Kobzol cc @Urgau
…rksonn re-enable test_dir_remove_dir test on QNX This reverts rust-lang#163500. The comment on that test doesn't really make sense: rust-lang#153781 is about `remove_dir_all` under concurrent mutation. The test is about `remove_dir`, and there should be no concurrent mutation while testing. The actual problem is that the fallback implementation for `remove_dir` was buggy. (QNX has no directory handles so it uses a path-based fallback implementation.) I fixed that in rust-lang#163020. So now that the fallback implementation is fixed, we can re-enable the test on QNX. We don't test that fallback implementation at all in our CI, unfortunately. Cc @tshepang r? @Darksonn
Member
Author
|
@bors r+ p=5 force |
Contributor
Contributor
|
PR #164578, which is a member of this rollup, was unapproved. This rollup was thus unapproved. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Successful merges:
#[inline(always)] + #[target_feature(enable = "....")]#2 #162460 (Feat -#[inline(always)] + #[target_feature(enable = "....")]bind's glue function should tail-call its target #2)rustc_builtin_macroscleanup, part 8 #163485 (rustc_builtin_macroscleanup, part 8)vec_visualizerlldb test #164457 (Addvec_visualizerlldb test)AsMut<T>andAsRef<T>for!. #161253 (ImplementAsMut<T>andAsRef<T>for!.)recursion_limitbuilt-in attribute #162369 (Document therecursion_limitbuilt-in attribute)r? @ghost
Create a similar rollup