Matthias Krüger
7339fc5cec
Rollup merge of #152929 - scottmcm:better-alignment-ranges, r=mati865
...
Tighten the `!range` bounds on alignments in vtables
Right now we're only telling LLVM that they're non-zero, but alignments must be powers of two so can't be more than `isize::MAX+1`. And we actually never emit anything beyond LLVM's limit of 2²⁹, so outside of 16-bit targets the limit is that.
(Pulled out from rust-lang/rust#152867 which is starting to have too much in it.)
2026-02-21 13:03:28 +01:00
Scott McMurray
0187acccad
Include the Align::MAX limit in the !range metadata for loading alignment from a vtable
2026-02-20 20:22:31 -08:00
Jonathan Brouwer
b0cdafbd4a
Rollup merge of #152455 - JonathanBrouwer:remove_translation, r=jdonszelmann
...
Remove the translation `-Z` options and the `Translator` type.
This PR implements MCP https://github.com/rust-lang/compiler-team/issues/967
It is split up into individually reviewable commits, each commit passes tests:
* https://github.com/rust-lang/rust/commit/678211956793a2e772414a71700a21525af6e67b Removes the translation compiler options from the session
* https://github.com/rust-lang/rust/commit/8f300d02fe8d2f01a39425925afd4cf3e15a822b Removes the now empty `Translator` type
* https://github.com/rust-lang/rust/commit/ab715c536fbd4ac09409e9a44eea2e25ea8a4f48 Renames `translate_message` to `format_diag_message`, as the function no longer does any translation
* https://github.com/rust-lang/rust/commit/8bcbc3f766af6242dcb52afe1ef4f6b1a9685019 Removes a section describing the removed compiler options from the rustc dev guide
2026-02-20 22:00:57 +01:00
Jonathan Brouwer
bbce734ce0
Rollup merge of #152527 - bjorn3:remove_z_emit_thin_lto, r=cuviper
...
Remove -Zemit-thin-lto flag
As far as I can tell it was introduced in https://github.com/rust-lang/rust/pull/98162 to allow fat LTO with `-Clinker-plugin-lto`. In https://github.com/rust-lang/rust/pull/136840 a change was made to automatically disable ThinLTO summary generation when `-Clinker-plugin-lto -Clto=fat` is used, so we can safely remove it.
Fixes rust-lang/rust#152490
2026-02-20 22:00:56 +01:00
Jonathan Brouwer
c0fe6943ae
Rollup merge of #152759 - jdonszelmann:simpler-get-attrs, r=jonathanbrouwer
...
Simpler `find_attr!()`
r? @JonathanBrouwer
cc: @jyn514
2026-02-20 13:24:55 +01:00
bjorn3
6366a698e3
Remove -Zemit-thin-lto flag
...
As far as I can tell it was introduced to allow fat LTO with
-Clinker-plugin-lto. Later a change was made to automatically disable
ThinLTO summary generation when -Clinker-plugin-lto -Clto=fat is used,
so we can safely remove it.
2026-02-20 12:19:41 +00:00
Jana Dönszelmann
decec173ec
remove AttributeKind everywhere
2026-02-20 09:50:16 +01:00
Jana Dönszelmann
04f762d842
allow deprecated for some valid uses
2026-02-20 09:50:16 +01:00
Jana Dönszelmann
9a9443950d
change all uses
2026-02-20 09:50:16 +01:00
Jana Dönszelmann
63edc913fa
change all uses
2026-02-20 09:50:16 +01:00
bors
59fd4ef94d
Auto merge of #152747 - nnethercote:bring-back-enum-DepKind, r=Zalathar
...
Bring back `enum DepKind`.
*[View all comments](https://triagebot.infra.rust-lang.org/gh-comments/rust-lang/rust/pull/152747 )*
It was removed in rust-lang/rust#115920 to enable it being moved to `rustc_query_system`, a move that has recently been reversed. It's much simpler as an enum.
r? @Zalathar
2026-02-20 06:07:20 +00:00
bors
fbd6934114
Auto merge of #152825 - JonathanBrouwer:rollup-0YvwE70, r=JonathanBrouwer
...
Rollup of 18 pull requests
Successful merges:
- rust-lang/rust#152799 (Subtree sync for rustc_codegen_cranelift)
- rust-lang/rust#152814 (stdarch subtree update)
- rust-lang/rust#151059 (x86: support passing `u128`/`i128` to inline assembly)
- rust-lang/rust#152097 (Suggest local variables for captured format args)
- rust-lang/rust#152734 (Respect the `--ci` flag in more places in bootstrap)
- rust-lang/rust#151703 (Fix ICE in transmutability error reporting when type aliases are normalized)
- rust-lang/rust#152173 (Reflection TypeKind::FnPtr)
- rust-lang/rust#152564 (Remove unnecessary closure.)
- rust-lang/rust#152628 (tests: rustc_public: Check const allocation for all variables (1 of 11 was missing))
- rust-lang/rust#152658 (compiletest: normalize stderr before SVG rendering)
- rust-lang/rust#152766 (std::r#try! - avoid link to nightly docs)
- rust-lang/rust#152780 (Remove some clones in deriving)
- rust-lang/rust#152787 (Add a mir-opt test for alignment check generation [zero changes outside tests])
- rust-lang/rust#152790 (Fix incorrect target in aarch64-unknown-linux-gnu docs)
- rust-lang/rust#152792 (Fix an ICE while checking param env shadowing on an erroneous trait impl)
- rust-lang/rust#152793 (Do no add -no-pie on Windows)
- rust-lang/rust#152803 (Avoid delayed-bug ICE for malformed diagnostic attrs)
- rust-lang/rust#152806 (interpret: fix comment typo)
2026-02-19 04:18:20 +00:00
Nicholas Nethercote
90b994b883
Rename query dep_kind.
...
The next commit will bring back `enum DepKind` and there would be a
variant `DepKind::dep_kind`. This makes it impossible to have a variable
named `dep_kind`, because the `bindings_with_variant_name` lint is
overzealous. For this code:
```
let dep_kind = DepKind::dep_kind;
```
the lint will give this error:
```
pattern binding `dep_kind` is named the same as one of the variants of the type `DepKind`
```
This is arguably a bug in the lint. To work around it, this commit
renames the `dep_kind` query as `crate_dep_kind`. It is a better name
anyway given that `DepKind` and `CrateDepKind` are different things.
2026-02-19 08:56:43 +11:00
Jonathan Brouwer
a1e029b8ba
Rollup merge of #152793 - mati865:disable-no-pie-on-windows, r=petrochenkov
...
Do no add -no-pie on Windows
Windows binaries are always position independent and Clang warns when trying to enable or disable that:
```
❯ clang hello.c -pie
clang: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument]
❯ clang hello.c -no-pie
clang: warning: argument unused during compilation: '-no-pie' [-Wunused-command-line-argument]
```
https://github.com/rust-lang/rust/pull/149937 will turn these warnings into build errors:
```
❯ cargo rustc -- -D linker-messages
Compiling hello v0.1.0 (E:\tmp\hello)
error: linker stderr: x86_64-w64-mingw32-clang: argument unused during compilation: '-nolibc' [-Wunused-command-line-argument]␍
x86_64-w64-mingw32-clang: argument unused during compilation: '-no-pie' [-Wunused-command-line-argument]␍
|
= note: requested on the command line with `-D linker-messages`
error: could not compile `hello` (bin "hello") due to 1 previous error
```
2026-02-18 22:19:54 +01:00
bors
e0cb264b81
Auto merge of #141295 - Kivooeo:if-let-guard-stable, r=fee1-dead,est31
...
Stabilize `if let` guards (`feature(if_let_guard)`)
## Summary
This proposes the stabilization of `if let` guards (tracking issue: rust-lang/rust#51114 , RFC: rust-lang/rfcs#2294 ). This feature allows `if let` expressions to be used directly within match arm guards, enabling conditional pattern matching within guard clauses.
## What is being stabilized
The ability to use `if let` expressions within match arm guards.
Example:
```rust
enum Command {
Run(String),
Stop,
Pause,
}
fn process_command(cmd: Command, state: &mut String) {
match cmd {
Command::Run(name) if let Some(first_char) = name.chars().next() && first_char.is_ascii_alphabetic() => {
// Both `name` and `first_char` are available here
println!("Running command: {} (starts with '{}')", name, first_char);
state.push_str(&format!("Running {}", name));
}
Command::Run(name) => {
println!("Cannot run command '{}'. Invalid name.", name);
}
Command::Stop if state.contains("running") => {
println!("Stopping current process.");
state.clear();
}
_ => {
println!("Unhandled command or state.");
}
}
}
```
## Motivation
The primary motivation for `if let` guards is to reduce nesting and improve readability when conditional logic depends on pattern matching. Without this feature, such logic requires nested `if let` statements within match arms:
```rust
// Without if let guards
match value {
Some(x) => {
if let Ok(y) = compute(x) {
// Both `x` and `y` are available here
println!("{}, {}", x, y);
}
}
_ => {}
}
// With if let guards
match value {
Some(x) if let Ok(y) = compute(x) => {
// Both `x` and `y` are available here
println!("{}, {}", x, y);
}
_ => {}
}
```
## Implementation and Testing
The feature has been implemented and tested comprehensively across different scenarios:
### Core Functionality Tests
**Scoping and variable binding:**
- [`scope.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/scope.rs ) - Verifies that bindings created in `if let` guards are properly scoped and available in match arms
- [`shadowing.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/shadowing.rs ) - Tests that variable shadowing works correctly within guards
- [`scoping-consistency.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/scoping-consistency.rs ) - Ensures temporaries in guards remain valid for the duration of their match arms
**Type system integration:**
- [`type-inference.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/type-inference.rs ) - Confirms type inference works correctly in `if let` guards
- [`typeck.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/typeck.rs ) - Verifies type mismatches are caught appropriately
**Pattern matching semantics:**
- [`exhaustive.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/exhaustive.rs ) - Validates that `if let` guards are correctly handled in exhaustiveness analysis
- [`move-guard-if-let.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/move-guard-if-let.rs ) and [`move-guard-if-let-chain.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/move-guard-if-let-chain.rs ) - Test that conditional moves in guards are tracked correctly by the borrow checker
### Error Handling and Diagnostics
- [`warns.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/warns.rs ) - Tests warnings for irrefutable patterns and unreachable code in guards
- [`parens.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/parens.rs ) - Ensures parentheses around `let` expressions are properly rejected
- [`macro-expanded.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/macro-expanded.rs ) - Verifies macro expansions that produce invalid constructs are caught
- [`guard-mutability-2.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/guard-mutability-2.rs ) - Tests mutability and ownership violations in guards
- [`ast-validate-guards.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2497-if-let-chains/ast-validate-guards.rs ) - Validates AST-level syntax restrictions
### Drop Order and Temporaries
**Key insight:** Unlike `let_chains` in regular `if` expressions, `if let` guards do not have drop order inconsistencies because:
1. Match guards are clearly scoped to their arms
2. There is no "else block" equivalent that could cause temporal confusion
- [`drop-order.rs`](https://github.com/rust-lang/rust/blob/5796073c134eaac30475f9a19462c4e716c9119c/tests/ui/rfcs/rfc-2294-if-let-guard/drop-order.rs ) - Check drop order of temporaries create in match guards
- [`compare-drop-order.rs`](https://github.com/rust-lang/rust/blob/aef3f5fdf052fbbc16e174aef5da6d50832ca316/tests/ui/rfcs/rfc-2294-if-let-guard/compare-drop-order.rs ) - Compares drop order between `if let` guards and nested `if let` in match arms, confirming they behave identically across all editions
- rust-lang/rust#140981 - A complicated drop order test involved `let chain` was made by @est31
- [`drop-order-comparisons-let-chains.rs`](https://github.com/rust-lang/rust/blob/902b4d28783e03e231d8513082cc30c4fcce5d95/tests/ui/drop/drop-order-comparisons-let-chains.rs ) - Compares drop order between `let chains` in `if let guard` and regular `if` expressions
- [`if-let-guards.rs`](https://github.com/rust-lang/rust/blob/5650d716e0589e2e145ce9027f35bd534e5f862a/tests/ui/drop/if-let-guards.rs ) - Test correctness of drop order for bindings and temporaries
- [`if-let-guards-2`](https://github.com/rust-lang/rust/blob/3a6c8c8f3d7ae654fdb6ce1255182bda21680655/tests/ui/drop/if-let-guards-2.rs ) - The same test as above but more comprehensive and tests more interactions between different features and their drop order, checking that drop order is correct, created by @traviscross
## Edition Compatibility
This feature stabilizes on all editions, unlike `let chains` which was limited to edition 2024. This is safe because:
1. `if let` guards don't suffer from the drop order issues that affected `let chains` in regular `if` expressions
2. The scoping is unambiguous - guards are clearly tied to their match arms
3. Extensive testing confirms identical behavior across all editions
## Interactions with Future Features
The lang team has reviewed potential interactions with planned "guard patterns" and determined that stabilizing `if let` guards now does not create obstacles for future work. The scoping and evaluation semantics established here align with what guard patterns will need.
## Unresolved Issues
- [x] - rust-lang/rust#140981
- [x] - added tests description by @jieyouxu request
- [x] - Concers from @scottmcm about stabilizing this across all editions
- [x] - check if drop order in all edition when using `let chains` inside `if let` guard is the same
- [x] - interactions with guard patters
- [x] - pattern bindings drops before guard bindings https://github.com/rust-lang/rust/pull/143376
- [x] - documentaion (https://github.com/rust-lang/reference/pull/1957 )
- [ ] (non-blocking) add tests for [this](https://github.com/rust-lang/rust/issues/145237 ) and [this](https://github.com/rust-lang/rust/pull/141295#issuecomment-3173059821 )
---
**Related:**
- Tracking Issue: rust-lang/rust#51114
- RFC: rust-lang/rfcs#2294
- Documentation PR: https://github.com/rust-lang/reference/pull/1957
2026-02-18 20:49:50 +00:00
Mateusz Mikuła
92e60a324f
Do no add -no-pie on Windows
...
Windows binaries are always position independent
and Clang warns when trying to enable or disable
that:
```
❯ clang hello.c -pie
clang: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument]
❯ clang hello.c -no-pie
clang: warning: argument unused during compilation: '-no-pie' [-Wunused-command-line-argument]
```
2026-02-18 11:24:13 +01:00
Camille Gillot
6d4b1b38e7
Remove ShallowInitBox.
2026-02-17 11:25:50 +00:00
Kivooeo
964b63f42e
if let guard stabilize
2026-02-16 12:24:15 +00:00
bjorn3
fa753a46c1
Remove code for ThinLTO from cg_gcc
...
It was just a dummy implementation to workarround the fact that thin
local lto is the default in rustc. By adding a thin_lto_supported thin
local lto can be automatically disabled for cg_gcc, removing the need
for this dummy implementation. This makes improvements to the LTO
handling on the cg_ssa side a lot easier.
2026-02-15 10:05:48 +00:00
Jonathan Brouwer
018a5efcf7
Rename inline_fluent! to msg!
2026-02-14 13:47:52 +01:00
Jacob Pratt
22f973db34
Rollup merge of #152568 - JonathanBrouwer:port_lang, r=jdonszelmann
...
Port `#[lang]` and `#[panic_handler]` to the new attribute parsers
For https://github.com/rust-lang/rust/issues/131229#issuecomment-2971351163
r? @jdonszelmann
2026-02-13 22:26:35 -05:00
Jacob Pratt
202f102914
Rollup merge of #152573 - usamoi:escape-2, r=bjorn3
...
move `escape_symbol_name` to `cg_ssa`
followup of rust-lang/rust#151955
r? @bjorn3
2026-02-13 22:26:33 -05:00
Jacob Pratt
4571317d32
Rollup merge of #151998 - zmodem:naked_visibility.squash, r=saethlin,bjorn3
...
Set hidden visibility on naked functions in compiler-builtins
88b46460fa made builtin functions hidden, but it doesn't apply to naked functions, which are generated through a different code path.
This was discovered in rust-lang/rust#151486 where aarch64 outline atomics showed up in shared objects, overriding the symbols from compiler-rt.
2026-02-13 22:26:31 -05:00
Jonathan Brouwer
c61c2603cf
Port #[lang] to the new attribute parsers
2026-02-13 16:04:19 +00:00
usamoi
4796ff1bf5
move escape_symbol_name to cg_ssa
2026-02-13 20:31:18 +08:00
bjorn3
2c44bb13c6
Support serializing CodegenContext
2026-02-12 12:44:15 +00:00
bjorn3
506ed6dcb7
Remove SelfProfilerRef from CodegenContext
...
It can't be serialized to a file.
2026-02-12 12:44:14 +00:00
bors
7ad4e69ad5
Auto merge of #152517 - jhpratt:rollup-fGRcId6, r=jhpratt
...
Rollup of 17 pull requests
Successful merges:
- rust-lang/rust#142415 (Add note when inherent impl for a alias type defined outside of the crate)
- rust-lang/rust#142680 (Fix passing/returning structs with the 64-bit SPARC ABI)
- rust-lang/rust#150768 (Don't compute FnAbi for LLVM intrinsics in backends)
- rust-lang/rust#151152 (Add FCW for derive helper attributes that will conflict with built-in attributes)
- rust-lang/rust#151814 (layout: handle rigid aliases without params)
- rust-lang/rust#151863 (Borrowck: simplify diagnostics for placeholders)
- rust-lang/rust#152159 (Add note for `?Sized` params in int-ptr casts diag)
- rust-lang/rust#152434 (Clarify names of `QueryVTable` functions for "executing" a query)
- rust-lang/rust#152478 (Remove tm_factory field from CodegenContext)
- rust-lang/rust#152498 (Partially revert "resolve: Update `NameBindingData::vis` in place")
- rust-lang/rust#152316 (fix: add continue)
- rust-lang/rust#152394 (Correctly check if a macro call is actually a macro call in rustdoc highlighter)
- rust-lang/rust#152425 (Port #![test_runner] to the attribute parser)
- rust-lang/rust#152481 (Use cg_ssa's produce_final_output_artifacts in cg_clif)
- rust-lang/rust#152485 (fix issue#152482)
- rust-lang/rust#152495 (Clean up some subdiagnostics)
- rust-lang/rust#152502 (Implement `BinaryHeap::from_raw_vec`)
2026-02-12 06:57:59 +00:00
Jacob Pratt
596faf0f26
Rollup merge of #152481 - bjorn3:backends_reduce_duplication, r=fmease
...
Use cg_ssa's produce_final_output_artifacts in cg_clif
2026-02-12 00:41:11 -05:00
Jonathan Brouwer
8f300d02fe
Remove the Translator type
2026-02-11 17:52:00 +01:00
Lukas Bergdoll
2f3b952349
Stabilize assert_matches
2026-02-11 14:13:44 +01:00
bjorn3
1106018af0
Use cg_ssa's produce_final_output_artifacts in cg_clif
2026-02-11 12:36:19 +00:00
bjorn3
f49223c443
Remove tm_factory field from CodegenContext
...
This is necessary to support serializing the CodegenContext to a .rlink
file in the future for moving LTO to the -Zlink-only step.
2026-02-11 12:18:04 +00:00
bjorn3
2d07e81a5c
Move target machine factory error reporting into codegen backend
2026-02-11 10:53:38 +00:00
Jana Dönszelmann
00fef81964
Port rustc_expected_cgu_reuse to the new attribute parser
2026-02-10 10:10:38 +01:00
Stuart Cook
60eaaba6c0
Rollup merge of #152067 - Zoxc:graph-weak-assert, r=jackh726
...
Weaken `assert_dep_node_not_yet_allocated_in_current_session` for multiple threads
This changes `assert_dep_node_not_yet_allocated_in_current_session` to not panic if the node is already marked green. Another thread may manage to mark it green if there was uncolored node when we initially tried to mark it green.
2026-02-08 16:58:25 +11:00
Stuart Cook
68f4a99963
Rollup merge of #151887 - scottmcm:homogeneous-try-in-compiler, r=jackh726
...
Remove some unnecessary `try`-related type annotations
I left a few, like
```rust
let result: Result<_, ModError<'_>> = try {
```
where it felt like seeing it might still be useful for the reader.
Feel free to push back on any of these changes if you think they should be left alone.
2026-02-08 16:58:23 +11:00
Jonathan Brouwer
edd43c9e1f
Fix existing messages in the diag structs
2026-02-07 09:11:34 +01:00
Jonathan Brouwer
d96d73fd86
Rollup merge of #152140 - bjorn3:driver_fixed_error_codes, r=jdonszelmann
...
Hard code the error code registry for custom drivers
And do some cleanups enabled by this.
2026-02-06 10:06:45 +01:00
bjorn3
639cb694df
Replace Registry type with a lazily initialized static
...
And move try_find_description to rustc_errors::codes.
2026-02-05 10:54:46 +00:00
Jonathan Brouwer
dd05e03db1
Rollup merge of #152118 - JonathanBrouwer:convert_codegen_ssa, r=jdonszelmann
...
Convert to inline diagnostics in `rustc_codegen_ssa`
For https://github.com/rust-lang/rust/issues/151366
r? @jdonszelmann
2026-02-05 08:32:56 +01:00
bors
db3e99bbab
Auto merge of #150605 - RalfJung:fallback-intrinsic-skip, r=mati865
...
skip codegen for intrinsics with big fallback bodies if backend does not need them
This hopefully fixes the perf regression from https://github.com/rust-lang/rust/pull/148478 . I only added the intrinsics with big fallback bodies to the list; it doesn't seem worth the effort of going through the entire list.
Fixes https://github.com/rust-lang/rust/issues/149945
Cc @scottmcm @bjorn3
2026-02-04 17:12:58 +00:00
Jonathan Brouwer
d445a2aabb
Convert to inline diagnostics in rustc_codegen_ssa
2026-02-04 17:24:41 +01:00
Jonathan Brouwer
cf0e19b0b4
Rollup merge of #152102 - bjorn3:inline_fluent_codegen_backends, r=JonathanBrouwer,GuillaumeGomez
...
Convert to inline diagnostics in all codegen backends
Part of https://github.com/rust-lang/rust/issues/151366
r? @JonathanBrouwer
2026-02-04 14:39:29 +01:00
bjorn3
d2a0557afb
Convert to inline diagnostics in all codegen backends
2026-02-04 13:12:49 +00:00
cezarbbb
dcdffe8d80
link modifier export-symbols: export all global symbols from selected uptream c static libraries
2026-02-04 09:26:21 +08:00
John Kåre Alsaker
80a4257fdf
Weaken assert_dep_node_not_yet_allocated_in_current_session for multiple threads
2026-02-03 21:46:06 +01:00
Nicholas Nethercote
3a5d7df841
Add a useful comment on rustc_codegen_ssa::NativeLib.
2026-02-03 15:46:05 +11:00
Nicholas Nethercote
1c4940b2be
Remove an unneeded HashStable derive.
...
This has the nice side-effect of eliminating `rustc_codegen_ssa`'s
dependency on `rustc_query_system`. (Indeed, looking through such
dependencies was how I found this.)
2026-02-03 12:56:00 +11:00
Hans Wennborg
73d06be9f3
Set hidden visibility on naked functions in compiler-builtins
...
88b46460fa made builtin functions hidden,
but it doesn't apply to naked functions, which are generated through a
different code path.
2026-02-02 14:52:34 +01:00