Commit Graph

40854 Commits

Author SHA1 Message Date
Jubilee Young
325af25c94 TL note: current means target 2024-09-20 10:02:14 -07:00
Taiki Endo
fa125e2be6 Support clobber_abi and vector/access registers (clobber-only) in s390x inline assembly 2024-09-21 01:51:26 +09:00
Giang Dao
ff86fa50fb no_inline for index vec 2024-09-20 23:30:31 +08:00
Artyom Tetyukhin
340b38ed67 Add arm64e-apple-tvos target 2024-09-20 18:53:09 +04:00
lcnr
9613f487ae add comment 2024-09-20 14:49:03 +00:00
bors
fb46739014 Auto merge of #130615 - GuillaumeGomez:rollup-tq0ff7y, r=GuillaumeGomez
Rollup of 6 pull requests

Successful merges:

 - #129542 (Add regression test for #129541)
 - #129755 (test: cross-edition metavar fragment specifiers)
 - #130566 (Break up compiletest `runtest.rs` into smaller helper modules)
 - #130585 (Add tidy check for rustdoc templates to ensure the whitespace characters are all stripped)
 - #130605 (Fix feature name in test)
 - #130607 ([Clippy] Remove final std paths for diagnostic item)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-09-20 14:41:23 +00:00
lcnr
5a219cba95 bail if there are too many non-region infer vars 2024-09-20 14:18:40 +00:00
Mara Bos
7a19b17084 Skip query in get_parent_item when possible. 2024-09-20 16:12:44 +02:00
Giang Dao
2f6b0618b2 dont regenerate new links for rexports 2024-09-20 21:49:37 +08:00
Guillaume Gomez
b2bcdbc797 Rollup merge of #130607 - GnomedDev:remove-seekfrom-paths, r=compiler-errors
[Clippy] Remove final std paths for diagnostic item

Removes the paths to SeekFrom::Start/Current that were left in #130553.

This was split off as it involves introducing a utility to check for enum ctors, as both:
- enum variants cannot be diagnostic items
- even if they could, that wouldn't help because we need to get the enum variant ctor

While adding the `is_enum_variant_ctor`, I removed both `is_diagnostic_ctor` and `is_res_diagnostic_ctor` as they are unused and never worked due to the above bullet points.
2024-09-20 15:45:47 +02:00
Gurinder Singh
716044751b Add recursion limit to FFI safety lint
Fixes stack overflow in the case of recursive types
2024-09-20 18:57:59 +05:30
bors
1a5a2240bc Auto merge of #130506 - nnethercote:rustc_codegen_llvm-cleanups, r=jieyouxu
`rustc_codegen_llvm` cleanups

Some improvements I found while reading through this crate's code.

r? `@michaelwoerister`
2024-09-20 11:55:32 +00:00
B I Mohammed Abbas
eb6a52c2f6 Update std support for all vxworks target archs 2024-09-20 17:23:49 +05:30
B I Mohammed Abbas
485e90f1a7 Add Vxworks RISC-V targets 2024-09-20 16:15:55 +05:30
GnomedDev
98e68e5040 [Clippy] Remove final std paths for diagnostic item 2024-09-20 10:39:31 +01:00
bors
2b11f265b6 Auto merge of #130508 - adwinwhite:niche-not-depend-on-order, r=the8472
Get rid of niche selection's dependence on fields's order

Fixes #125630.
Use the optimal niche selection decided in `univariant()` rather than picking niche field manually.

r? `@the8472`
2024-09-20 08:43:57 +00:00
Matthias Krüger
b963750b6b Rollup merge of #130485 - compiler-errors:impossible-types, r=BoxyUwU
Do not expect infer/bound/placeholder/error in v0 symbol mangling

Infer/bound/placeholder/error are not encounterable during codegen. Let's make sure v0 symbol mangling doesn't "accidentally" handle them.

As for aliases (namely: projections and uv consts) these may still be encounterable because of the way that we render the def paths of items. Specifically, when we have something like:

```
struct W<T>(T);

impl<T> W<T> {
    fn x() {
        fn y() {}
    }
}
```

The path of `y` is rendered like `crate_name::W<T>::y`. Specifically, since `y` doesn't inherit the generics of the impl, we use the *identity* substitutions for that impl. If the impl has any aliases, they will remain unnormalized if they're rigid.

r? `@BoxyUwU`
2024-09-20 06:43:38 +02:00
Jaic1
c2ccd89ce4 handle unsized consts with type str in v0 symbol mangling 2024-09-20 09:41:16 +08:00
bors
5793a9e902 Auto merge of #130561 - lukas-code:perf-normalize-env, r=compiler-errors
[perf] skip normalizing param env if it is already normalized

If the param env is already normalized after elaboration, then we can skip a bunch of expensive operations.

> [!note]
> This makes it so that outlives predicates are no longer sorted after non-outlives predicates. Surely this won't make a semantic difference.

r? ghost
2024-09-20 00:19:16 +00:00
Eric Holk
a18800f807 pin_ergonomics: allow reborrowing as Pin<&T> 2024-09-19 16:28:19 -07:00
Jubilee Young
42dbf29b48 Correct outdated object size limit
The comment here about 48 bit addresses being enough was written in 2016
but was made incorrect in 2019 by 5-level paging, and then persisted for
another 5 years before being noticed and corrected.
2024-09-19 16:23:38 -07:00
Eric Holk
b2b76fb706 Allow shortening reborrows
Generating a call to `as_mut()` let to more restrictive borrows than
what reborrowing usually gives us. Instead, we change the desugaring to
reborrow the pin internals directly which makes things more expressive.
2024-09-19 15:34:00 -07:00
Jubilee Young
e9cf280ef2 warn less about non-exhaustive in ffi
Bindgen allows generating `#[non_exhaustive] #[repr(u32)]` enums.
This results in nonintuitive nonlocal `improper_ctypes` warnings,
even when the types are otherwise perfectly valid in C.

Adjust for actual tooling expectations by avoiding warning on
simple enums with only unit variants.
2024-09-19 12:56:31 -07:00
Matthias Krüger
f715815bfb Rollup merge of #130558 - taiki-e:s390x-atomic-128, r=cuviper
Support 128-bit atomics on s390x

Since LLVM 18 (c568927f3e), 128-bit atomics are fully supported on s390x. And the current minimum external LLVM version is now 18 (https://github.com/rust-lang/rust/pull/130487).

s390x 128-bit atomic instructions (lpq,stpq,cdsg) has been present since [the First Edition of the Principles of Operation](https://publibfp.dhe.ibm.com/epubs/pdf/dz9zr000.pdf). (LLVM's minimal supported architecture level [is z10 (the Eighth Edition of the PoP)](https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZProcessors.td#L16-L17).)

cc https://github.com/rust-lang/rust/issues/99069

r? `@cuviper`
2024-09-19 20:37:09 +02:00
Matthias Krüger
9f0d32c638 Rollup merge of #130556 - Urgau:link_cfg_internal, r=jieyouxu
Mark the `link_cfg` feature as internal

This PR marks the `link_cfg` feature as internal because it's a perme-unstable feature, only used by `core`/`std`and `unwind`.
2024-09-19 20:37:08 +02:00
Matthias Krüger
569153a432 Rollup merge of #130553 - GnomedDev:remove-clippy-paths, r=compiler-errors
[Clippy] Get rid of most `std` `match_def_path` usage, swap to diagnostic items.

Part of https://github.com/rust-lang/rust-clippy/issues/5393.

This was going to remove all `std` paths, but `SeekFrom` has issues being cleanly replaced with a diagnostic item as the paths are for variants, which currently cannot be diagnostic items.

This also, as a last step, categories the paths to help with future path removals.
2024-09-19 20:37:07 +02:00
Kornel
3dcb5a3962 Add str.as_str() for easy dereferencing of Box<str> 2024-09-19 16:25:56 +01:00
Urgau
b67485e196 Make link_cfg internal because it's in perme-unstable 2024-09-19 15:56:27 +02:00
Lukas Markeffsky
1999d065b7 skip normalizing param env if it is already normalized 2024-09-19 15:56:24 +02:00
GnomedDev
b2eebeeea9 [Clippy] Swap open_options to use diagnostic items instead of paths 2024-09-19 13:13:43 +01:00
GnomedDev
364e552940 [Clippy] Swap iter_over_hash_type to use diagnostic items instead of paths 2024-09-19 13:13:43 +01:00
GnomedDev
43b8e04d46 [Clippy] Swap non_octal_unix_permissions to use diagnostic item instead of path 2024-09-19 13:13:43 +01:00
GnomedDev
5f85f73f63 [Clippy] Swap unnecessary_owned_empty_strings to use diagnostic item instead of path 2024-09-19 13:13:43 +01:00
GnomedDev
5f42ae13c1 [Clippy] Swap manual_strip to use diagnostic items instead of paths 2024-09-19 13:13:43 +01:00
GnomedDev
89532c0f30 [Clippy] Swap unnecessary_to_owned to use diagnostic item instead of path 2024-09-19 13:13:42 +01:00
GnomedDev
1890620b26 [Clippy] Swap instant_subtraction to use diagnostic item instead of path 2024-09-19 13:13:42 +01:00
GnomedDev
372f68b6a6 [Clippy] Swap waker_clone_wake to use diagnostic item instead of path 2024-09-19 13:13:42 +01:00
GnomedDev
5b55270225 [Clippy] Swap filter_map_bool_then to use diagnostic item instead of path 2024-09-19 13:13:42 +01:00
GnomedDev
25da0e2e5d [Clippy] Swap manual_while_let_some to use diagnostic items instead of paths 2024-09-19 13:13:42 +01:00
GnomedDev
15240a93c9 [Clippy] Swap repeat_vec_with_capacity to use diagnostic item instead of path 2024-09-19 13:13:42 +01:00
GnomedDev
846ae57fc1 [Clippy] Swap VecArgs::hir to use diagnostic items instead of paths 2024-09-19 13:13:40 +01:00
GnomedDev
28f4c8293a [Clippy] Swap single_char_add_str/format_push_string to use diagnostic items instead of paths 2024-09-19 13:13:20 +01:00
GnomedDev
037b9784b6 [Clippy] Swap manual_main_separator_str to use diagnostic item instead of path 2024-09-19 13:13:20 +01:00
GnomedDev
afe7907914 [Clippy] Swap redundant_clone to use diagnostic items instead of paths 2024-09-19 13:13:20 +01:00
GnomedDev
c891082029 [Clippy] Swap float_equality_without_abs to use diagnostic items instead of paths 2024-09-19 13:13:20 +01:00
GnomedDev
5e4716888a [Clippy] Swap option_as_ref_deref to use diagnostic items instead of paths 2024-09-19 13:13:19 +01:00
Taiki Endo
078b067c0d Support 128-bit atomics on s390x 2024-09-19 20:26:43 +09:00
Luv-Ray
6da2d6e026 MetadataType type cast 2024-09-19 18:56:02 +08:00
Luv-Ray
e2ec83ced9 move place 2024-09-19 18:52:09 +08:00
Luv-Ray
632342a135 wrap LLVMSetMetadata 2024-09-19 18:45:23 +08:00