Skip to content

#[no_link] attribute does not prevent crate linking #152854

Description

@martonmoro

View all comments

Problem: #[no_link] does not prevent an extern crate from being linked.

Steps to reproduce:

macro_crate/Cargo.toml:

[package]
name = "macro_crate"
version = "0.1.0"
edition = "2021"

macro_crate/src/lib.rs:

#[macro_export]
macro_rules! square {
    ($x:expr) => {
        $x * $x
    };
}

pub fn add(x: i32, y: i32) -> i32 {
    x + y
}

Cargo.toml:

[package]
name = "no_link_bug"
version = "0.1.0"
edition = "2024"

[dependencies]
macro_crate = { path = "../macro_crate" }

src/main.rs:

#[no_link]
extern crate macro_crate;

fn main() {
    let num = 4;
    let squared = macro_crate::square!(num);
    println!("{} squared is {}", num, squared);

    let sum = macro_crate::add(1, 2);
    println!("1 + 2 = {}", sum);
}

Expected behavior:
The build should fail with a linker error, for example:

rust-lld: error: undefined symbol: macro_crate::add::hd706c5be871dff6f

Actual behavior:
The build succeeds and produces a binary.

Meta:

rustc 1.95.0-nightly (c04308580 2026-02-18)
binary: rustc
commit-hash: c043085801b7a884054add21a94882216df5971c
commit-date: 2026-02-18
host: x86_64-unknown-linux-gnu
release: 1.95.0-nightly
LLVM version: 22.1.0

cargo 1.95.0-nightly (ce69df6f7 2026-02-12)

Linux x86_64

Verbose build output:

Verbose output
RUST_BACKTRACE=1 cargo build -vv
Compiling macro_crate v0.1.0 (/home/mmoro/Projects/no_link_bug/macro_crate)
     Running `CARGO=/home/mmoro/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/cargo CARGO_CRATE_NAME=macro_crate CARGO_MANIFEST_DIR=/home/mmoro/Projects/no_link_bug/macro_crate CARGO_MANIFEST_PATH=/home/mmoro/Projects/no_link_bug/macro_crate/Cargo.toml CARGO_PKG_AUTHORS='' CARGO_PKG_DESCRIPTION='' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE='' CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=macro_crate CARGO_PKG_README='' CARGO_PKG_REPOSITORY='' CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.1.0 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' LD_LIBRARY_PATH='/home/mmoro/Projects/no_link_bug/target/debug/deps:/home/mmoro/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib' /home/mmoro/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc --crate-name macro_crate --edition=2021 macro_crate/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=192 --crate-type rlib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=1ffd961baa1102b0 -C extra-filename=-c0993a15f8871f25 --out-dir /home/mmoro/Projects/no_link_bug/target/debug/deps -C incremental=/home/mmoro/Projects/no_link_bug/target/debug/incremental -L dependency=/home/mmoro/Projects/no_link_bug/target/debug/deps`
   Compiling no_link_bug v0.1.0 (/home/mmoro/Projects/no_link_bug)
     Running `CARGO=/home/mmoro/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/cargo CARGO_BIN_NAME=no_link_bug CARGO_CRATE_NAME=no_link_bug CARGO_MANIFEST_DIR=/home/mmoro/Projects/no_link_bug CARGO_MANIFEST_PATH=/home/mmoro/Projects/no_link_bug/Cargo.toml CARGO_PKG_AUTHORS='' CARGO_PKG_DESCRIPTION='' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE='' CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=no_link_bug CARGO_PKG_README='' CARGO_PKG_REPOSITORY='' CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.1.0 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' CARGO_PRIMARY_PACKAGE=1 LD_LIBRARY_PATH='/home/mmoro/Projects/no_link_bug/target/debug/deps:/home/mmoro/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib' /home/mmoro/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc --crate-name no_link_bug --edition=2024 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=192 --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=6bf287f543d40f7f -C extra-filename=-838203c1bd20a69b --out-dir /home/mmoro/Projects/no_link_bug/target/debug/deps -C incremental=/home/mmoro/Projects/no_link_bug/target/debug/incremental -L dependency=/home/mmoro/Projects/no_link_bug/target/debug/deps --extern macro_crate=/home/mmoro/Projects/no_link_bug/target/debug/deps/libmacro_crate-c0993a15f8871f25.rlib`
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.25s

My thoughts:

When rustc is invoked with --extern macro_crate=…/*.rlib, the crate is initially loaded as Unconditional. Later, when the compiler sees #[no_link] extern crate macro_crate, it attempts to downgrade it to MacrosOnly. However, maybe_resolve_crate uses cmp::max when updating the crate’s dep_kind, so the Unconditional status is retained. As a result, the crate is still linked, and functions like macro_crate::add are available, causing the build to succeed rather than produce a linker error.

Activity

  1. added
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Feb 19, 2026
  2. eggyal commented on Feb 19, 2026

    @eggyal
    Contributor

    Appears to be a regression in 1.91.

    On 1.90, I see the following:

       Compiling macro_crate v0.1.0 (/home/eggyal/projects/macro_crate)
       Compiling no_link_bug v0.1.0 (/home/eggyal/projects/no_link_bug)
    error: linking with `cc` failed: exit status: 1
      |
      = note:  "cc" "-m64" "/tmp/rustcHLBM2N/symbols.o" "<8 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,libcfg_if-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcHLBM2N/raw-dylibs" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/eggyal/projects/no_link_bug/target/debug/deps/no_link_bug-983b28fb9f9ac056" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
      = note: some arguments are omitted. use `--verbose` to show all linker arguments
      = note: rust-lld: error: undefined symbol: macro_crate::add::hfd94750f91296b71
              >>> referenced by main.rs:9 (src/main.rs:9)
              >>>               /home/eggyal/projects/no_link_bug/target/debug/deps/no_link_bug-983b28fb9f9ac056.0bmy1e9jvfw8ymnd4muh4wrs5.0pr1ina.rcgu.o:(no_link_bug::main::h7337b9e69389db87)
              collect2: error: ld returned 1 exit status
              
    
    error: could not compile `no_link_bug` (bin "no_link_bug") due to 1 previous error
    

    @rustbot label +A-linkage +E-needs-bisection +T-compiler +regression-from-stable-to-stable -needs-triage

  3. added
    A-linkageArea: linking into static, shared libraries and binaries
    regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    I-prioritizeIssue needs a team member to assess the impact. Will be replaced by P-{low,medium,high,critical}
    on Feb 19, 2026
  4. rustbot commented on Feb 19, 2026

    @rustbot
    Collaborator

    Error: Unknown labels: E-needs-bisect

    Please file an issue on GitHub at triagebot if there's a problem with this bot, or reach out on #triagebot on Zulip.

  5. added
    E-needs-bisectionCall for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc
    and removed
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Feb 19, 2026
  6. bjorn3 commented on Feb 19, 2026

    @bjorn3
    Member

    add was likely cross-crate inlined, so macro_crate happened to not actually be necessary at link time. In any case #[no_link] is very fragile as there are no checks that you are not using anything from such a crate other than macros. I did be in favor of deprecating and removing it.

  7. petrochenkov commented on Feb 19, 2026

    @petrochenkov
    Contributor

    Please, check the linker command line to make sure that macro_crate is indeed linked.
    fn add may be opportunistically inlined at MIR level because it's very small.

    When rustc is invoked with --extern macro_crate=…/*.rlib, the crate is initially loaded as Unconditional

    --extern by itself doesn't cause any crate loading, it only specifies where to find the crate if it's actually used.

  8. eggyal commented on Feb 19, 2026

    @eggyal
  9. petrochenkov commented on Feb 19, 2026

    @petrochenkov
    Contributor

    It's a pre-Rust 1.0 attribute that was stabilized accidentally.
    IIRC it was used for compiler plugins originally.

  10. eggyal commented on Feb 19, 2026

    @eggyal
    Contributor

    I guess a crater run to guage how much removal might impact the ecosystem, and then nominate for lang discussion?

  11. 2 remaining items

  12. martonmoro commented on Feb 19, 2026

    @martonmoro
    Author

    Please, check the linker command line to make sure that macro_crate is indeed linked. fn add may be opportunistically inlined at MIR level because it's very small.

    When rustc is invoked with --extern macro_crate=…/*.rlib, the crate is initially loaded as Unconditional

    --extern by itself doesn't cause any crate loading, it only specifies where to find the crate if it's actually used.

    In the MIR it shows

    bb5: {
            _14 = macro_crate::add(const 1_i32, const 2_i32) -> [return: bb6, unwind continue];
        }
    

    also the symbol is in the text section
    0000000000014400 T _RNvCsk6r9O4cPmFO_11macro_crate3add

    Does this show that it is not being inlined? Should I run anything else?

  13. bjorn3 commented on Feb 19, 2026

    @bjorn3
    Member

    also the symbol is in the text section
    0000000000014400 T _RNvCsk6r9O4cPmFO_11macro_crate3add

    Is that in libmacro_crate.rlib or the object file of the executable? If the latter, it did actually get cross-crate inlined. Cross-crate inlining only ensures that the function is codegened as private function in the crates that use the function. It is then up to LLVM to actually inline the call, which doesn't happen when optimizations are disabled.

  14. martonmoro commented on Feb 19, 2026

    @martonmoro
    Author

    also the symbol is in the text section
    0000000000014400 T _RNvCsk6r9O4cPmFO_11macro_crate3add

    Is that in libmacro_crate.rlib or the object file of the executable? If the latter, it did actually get cross-crate inlined. Cross-crate inlining only ensures that the function is codegened as private function in the crates that use the function. It is then up to LLVM to actually inline the call, which doesn't happen when optimizations are disabled.

    aah, it's from the executable.

  15. martonmoro commented on Feb 19, 2026

    @martonmoro
    Author

    also the symbol is in the text section
    0000000000014400 T _RNvCsk6r9O4cPmFO_11macro_crate3add

    Is that in libmacro_crate.rlib or the object file of the executable? If the latter, it did actually get cross-crate inlined. Cross-crate inlining only ensures that the function is codegened as private function in the crates that use the function. It is then up to LLVM to actually inline the call, which doesn't happen when optimizations are disabled.

    the part that I don't understand is that when I add #[inline(never)] and run
    RUSTC_LOG=rustc_codegen_ssa::back::link=info cargo build

    this is present in the linker arguments: libmacro_crate-c0993a15f8871f25.rlib

    "cc" "-m64" ... "-Wl,-Bstatic" "/home/mmoro/Projects/no_link_bug/target/debug/deps/libmacro_crate-c0993a15f8871f25.rlib" "/home/mmoro/.rustup/toolchains/.../libstd-957b1fe07cf96b13.rlib" ...
    

    nightly and 1.90.0 comparison

    ➜  RUSTC_LOG=rustc_codegen_ssa::back::link=info cargo +nightly build 2>&1 | grep '"cc"' | grep -oP '"-Wl,-Bstatic" "[^"]*libmacro_crate[^"]*"'
    "-Wl,-Bstatic" "/home/mmoro/Projects/no_link_bug/target/debug/deps/libmacro_crate-c0993a15f8871f25.rlib"
    ➜  RUSTC_LOG=rustc_codegen_ssa::back::link=info cargo +1.90.0 build 2>&1 | grep -E '("-Wl,-Bstatic".*libmacro_crate|undefined symbol)'
      = note: rust-lld: error: undefined symbol: add
    

    building with 1.90.0 this is absent

  16. bjorn3 commented on Feb 19, 2026

    @bjorn3
    Member

    #152856 should be suitable for doing a crater run on removing #[no_link] I think.

  17. petrochenkov commented on Feb 20, 2026

    @petrochenkov
    Contributor

    In any case, if libmacro_crate-c0993a15f8871f25.rlib appears on the linker command line, then something legitimately regressed, and may potentially cause other issues. It would be good to figure it out, even if no_link is removed eventually.

  18. eggyal commented on Feb 20, 2026

    @eggyal
  19. JonathanBrouwer commented on Feb 20, 2026

    @JonathanBrouwer
    Member

    Huh that's interesting, I'll take a look at this later today

  20. JonathanBrouwer commented on Feb 20, 2026

    @JonathanBrouwer
    Member

    I checked #145085, both before and after the PR cargo build succeeds (so the bug is there), so this PR is not the regressing PR

  21. eggyal commented on Feb 20, 2026

    @eggyal
    Contributor

    Agh, apologies!

    bisection
    $ rustc +1.90 --version
    rustc 1.90.0 (1159e78c4 2025-09-14)
    

    $ git show -s --format=%ci $(git merge-base 1159e78c4 main)
    2025-08-02 09:23:36 +0000

    $ (cd ../no_link_bug; cargo bisect-rustc --start 2025-08-01 --regress non-error)
    ...
    searched toolchains nightly-2025-08-01 through nightly-2026-02-20


    Regression in nightly-2025-08-15


    fetching https://static.rust-lang.org/dist/2025-08-14/channel-rust-nightly-git-commit-hash.txt
    nightly manifest 2025-08-14: 40 B / 40 B [=================================================================================================================================================================================================================================================================] 100.00 % 658.04 KB/s converted 2025-08-14 to 3672a55b7cfd0a12e7097197b6242872473ffaa7
    fetching https://static.rust-lang.org/dist/2025-08-15/channel-rust-nightly-git-commit-hash.txt
    nightly manifest 2025-08-15: 40 B / 40 B [=================================================================================================================================================================================================================================================================] 100.00 % 612.26 KB/s converted 2025-08-15 to 898aff704d6f0d00343f21d31b8b9bfac8e43007
    looking for regression commit between 2025-08-14 and 2025-08-15
    fetching (via remote github) commits from max(3672a55b7cfd0a12e7097197b6242872473ffaa7, 2025-08-12) to 898aff704d6f0d00343f21d31b8b9bfac8e43007
    ending github query because we found starting sha: 3672a55b7cfd0a12e7097197b6242872473ffaa7
    get_commits_between returning commits, len: 6
    commit[0] 2025-08-13: Auto merge of #145366 - GuillaumeGomez:rollup-v0a6v3u, r=GuillaumeGomez
    commit[1] 2025-08-13: Auto merge of #144793 - petrochenkov:extprel3, r=davidtwco
    commit[2] 2025-08-14: Auto merge of #145131 - Kobzol:bootstrap-clippy, r=jieyouxu
    commit[3] 2025-08-14: Auto merge of #145388 - GuillaumeGomez:rollup-hnlt5ov, r=GuillaumeGomez
    commit[4] 2025-08-14: Auto merge of #144542 - sayantn:stabilize-sse4a-tbm, r=Amanieu,traviscross
    commit[5] 2025-08-14: Auto merge of #145085 - JonathanBrouwer:target_checking, r=jdonszelmann
    ERROR: no CI builds available between 3672a55b7cfd0a12e7097197b6242872473ffaa7 and 898aff704d6f0d00343f21d31b8b9bfac8e43007 within last 167 days

    $ git bisect start --first-parent --term-bad=compiles --term-good=fails
    status: waiting for both good and bad commits
    $ git bisect fails 3672a55b7cfd0a12e7097197b6242872473ffaa7
    status: waiting for bad commit, 1 good commit known
    $ git bisect compiles 898aff704d6f0d00343f21d31b8b9bfac8e43007
    Bisecting: 2 revisions left to test after this (roughly 1 step)
    [2c1ac85679678dfe5cce7ea8037735b0349ceaf3] Auto merge of #145131 - Kobzol:bootstrap-clippy, r=jieyouxu

    $ ./x build
    ...
    $ (cd ../no_link_bug; cargo clean; cargo +stage1 build)
    Compiling macro_crate v0.1.0 (/home/eggyal/projects/macro_crate)
    Compiling no_link_bug v0.1.0 (/home/eggyal/projects/no_link_bug)
    Finished dev profile [unoptimized + debuginfo] target(s) in 0.10s
    $ git bisect compiles
    Bisecting: 0 revisions left to test after this (roughly 0 steps)
    [8e7795415acaa9471b5eeb2301915d6996d289ec] Auto merge of #144793 - petrochenkov:extprel3, r=davidtwco

    $ ./x build
    ...
    $ (cd ../no_link_bug; cargo clean; cargo +stage1 build)
    Removed 35 files, 7.3MiB total
    Compiling macro_crate v0.1.0 (/home/eggyal/projects/macro_crate)
    Compiling no_link_bug v0.1.0 (/home/eggyal/projects/no_link_bug)
    Finished dev profile [unoptimized + debuginfo] target(s) in 0.10s
    $ git bisect compiles
    8e7795415acaa9471b5eeb2301915d6996d289ec is the first bad commit
    commit 8e7795415acaa9471b5eeb2301915d6996d289ec (HEAD)
    Merge: 3672a55b7cf 9aa6cb5e56b
    Author: bors bors@rust-lang.org
    Date: Wed Aug 13 22:52:17 2025 +0000

    Auto merge of #144793 - petrochenkov:extprel3, r=davidtwco
    
    resolve: Split extern prelude into two scopes
    
    One scope for `extern crate` items and another for `--extern` options, with the former shadowing the latter.
    
    If in a single scope some things can overwrite other things, especially with ad hoc restrictions like `MacroExpandedExternCrateCannotShadowExternArguments`, then it's not really a single scope.
    So this PR splits `Scope::ExternPrelude` into two cleaner scopes.
    
    This is similar to how https://github.com/rust-lang/rust/pull/144131 splits module scope into two scopes for globs and non-globs, but simpler.
    

    ...

    $ git checkout HEAD~
    A tests/ui/linking/auxiliary/macro_crate.rs
    A tests/ui/linking/no_link-attribute.rs
    A tests/ui/linking/no_link-attribute.stderr
    Previous HEAD position was 8e7795415ac Auto merge of #144793 - petrochenkov:extprel3, r=davidtwco
    HEAD is now at 3672a55b7cf Auto merge of #145366 - GuillaumeGomez:rollup-v0a6v3u, r=GuillaumeGomez
    $ ./x build
    ...
    $ (cd ../no_link_bug; cargo +stage1 build)
    Removed 35 files, 7.3MiB total
    Compiling macro_crate v0.1.0 (/home/eggyal/projects/macro_crate)
    Compiling no_link_bug v0.1.0 (/home/eggyal/projects/no_link_bug)
    error: linking with cc failed: exit status: 1
    |
    = note: "cc" "-m64" "/tmp/rustcx5j8B5/symbols.o" "<8 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-,libpanic_unwind-,libobject-,libmemchr-,libaddr2line-,libgimli-,librustc_demangle-,libstd_detect-,libhashbrown-,librustc_std_workspace_alloc-,libminiz_oxide-,libadler2-,libunwind-,libcfg_if-,liblibc-,librustc_std_workspace_core-,liballoc-,libcore-,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcx5j8B5/raw-dylibs" "-B/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/eggyal/projects/no_link_bug/target/debug/deps/no_link_bug-998d11ad316fef9c" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
    = note: some arguments are omitted. use --verbose to show all linker arguments
    = note: rust-lld: error: undefined symbol: macro_crate::add::h01eea6bd3b81262b
    >>> referenced by main.rs:9 (src/main.rs:9)
    >>> /home/eggyal/projects/no_link_bug/target/debug/deps/no_link_bug-998d11ad316fef9c.1dsyhbohx52lpnpy4m726tf75.11xw61o.rcgu.o:(no_link_bug::main::hf0b26e513736481f)
    collect2: error: ld returned 1 exit status

    error: could not compile no_link_bug (bin "no_link_bug") due to 1 previous error

    I had the right nightly, but must have messed up the git bisect. I've double checked this time, and the regression is definitely in #144793 cc @petrochenkov @davidtwco

  22. self-assigned this
    on Feb 23, 2026
  23. petrochenkov commented on Feb 23, 2026

    @petrochenkov
    Contributor

    Minimized without cargo.

    // macro_crate.rs
    
    #[macro_export]
    macro_rules! mac {
        () => {};
    }
    
    pub fn function() {}
    // main.rs
    
    #[no_link]
    extern crate macro_crate;
    
    fn main() {
        macro_crate::mac!(); // linking error appears if this line is commented out
        macro_crate::function();
    }
    rustc macro_crate.rs --crate-type=lib
    rustc main.rs --extern macro_crate=libmacro_crate.rlib

    Whether libmacro_crate.rlib appears on linker's command line depends on the presence of the macro call.

  24. petrochenkov commented on Feb 23, 2026

    @petrochenkov
    Contributor

    Fix: petrochenkov@ca89c6e

    I'm not too interested in actually submitting it, introducing this kind of additional overriding hierarchy doesn't seem right.
    It would be better to just turn #[no_link] into noop and deprecate it.

  25. added
    P-lowLow priority
    and removed
    I-prioritizeIssue needs a team member to assess the impact. Will be replaced by P-{low,medium,high,critical}
    on Feb 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

A-linkageArea: linking into static, shared libraries and binariesC-bugCategory: This is a bug.P-lowLow priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions