Skip to content

Conversation

@Noratrieb
Copy link
Member

Previously, std-internal symbols (like __rust_alloc or rust_panic) were changed to now be mangled via a v0 scheme with the compiler version hash (_RNvCs4CIB29Id3dw_7___rustc10rust_panic) to make it possible to have multiple staticlibs (as long as they have different version hashes) in the same program without symbol conflicts. But the personality function remained unmangled, because LLVM hardcodes that name.

I made a change in LLVM llvm/llvm-project#166095 that makes LLVM now check the suffix instead of an exact match, so we can mangle the personality function with this scheme.

This removes the last completely unmangled symbol from Rust staticlibs! (though the mangling is still quite weak, so it's still not as nice as it would ideally be).

Before, on a trivial staticlib:

readelf -s liblib.a | rg GLOBAL | rg -v " UND | HIDDEN " | rg -v ' _ZN'
     8: 0000000000000000     5 FUNC    GLOBAL DEFAULT     3 _RNvCseCSg29WUqSe_7___rustc12___rust_alloc
    10: 0000000000000000     5 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc14___rust_dealloc
    12: 0000000000000000     5 FUNC    GLOBAL DEFAULT     7 _RNvCseCSg29WUqSe_7___rustc14___rust_realloc
    14: 0000000000000000     5 FUNC    GLOBAL DEFAULT     9 _RNvCseCSg29WUqSe_7___rustc19___rust_alloc_zeroed
    16: 0000000000000000     3 FUNC    GLOBAL DEFAULT    11 _RNvCseCSg29WUqSe_7___rustc42___rust_alloc_error_handler_should_panic_v2
    17: 0000000000000000     1 FUNC    GLOBAL DEFAULT    12 _RNvCseCSg29WUqSe_7___rustc35___rust_no_alloc_shim_is_unstable_v2
  3383: 0000000000000000   111 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc10rust_panic
  3387: 0000000000000000    93 FUNC    GLOBAL DEFAULT     7 _RNvCseCSg29WUqSe_7___rustc11___rdl_alloc
  3390: 0000000000000000    10 FUNC    GLOBAL DEFAULT     9 _RNvCseCSg29WUqSe_7___rustc12___rust_abort
  3391: 0000000000000000     6 FUNC    GLOBAL DEFAULT    11 _RNvCseCSg29WUqSe_7___rustc13___rdl_dealloc
  3393: 0000000000000000   167 FUNC    GLOBAL DEFAULT    13 _RNvCseCSg29WUqSe_7___rustc13___rdl_realloc
  3396: 0000000000000000   203 FUNC    GLOBAL DEFAULT    15 _RNvCseCSg29WUqSe_7___rustc17___rust_drop_panic
  3399: 0000000000000000    29 FUNC    GLOBAL DEFAULT    18 _RNvCseCSg29WUqSe_7___rustc17rust_begin_unwind
  3401: 0000000000000000   140 FUNC    GLOBAL DEFAULT    20 _RNvCseCSg29WUqSe_7___rustc18___rdl_alloc_zeroed
  3404: 0000000000000000   203 FUNC    GLOBAL DEFAULT    22 _RNvCseCSg29WUqSe_7___rustc24___rust_foreign_exception
  3405: 0000000000000000    19 FUNC    GLOBAL DEFAULT    25 _RNvCseCSg29WUqSe_7___rustc26___rust_alloc_error_handler
  4410: 0000000000000000  1471 FUNC    GLOBAL DEFAULT   2752 rust_eh_personality
    25: 0000000000000000   161 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc18___rust_start_panic
    32: 0000000000000000    82 FUNC    GLOBAL DEFAULT     8 _RNvCseCSg29WUqSe_7___rustc20___rust_panic_cleanup
   249: 0000000000000000   182 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc25___rdl_alloc_error_handler
     3: 0000000000000000    57 FUNC    GLOBAL DEFAULT     3 _RNvCseCSg29WUqSe_7___rustc17___rust_probestack

After:

     8: 0000000000000000     5 FUNC    GLOBAL DEFAULT     3 _RNvCs4CIB29Id3dw_7___rustc12___rust_alloc
    10: 0000000000000000     5 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc14___rust_dealloc
    12: 0000000000000000     5 FUNC    GLOBAL DEFAULT     7 _RNvCs4CIB29Id3dw_7___rustc14___rust_realloc
    14: 0000000000000000     5 FUNC    GLOBAL DEFAULT     9 _RNvCs4CIB29Id3dw_7___rustc19___rust_alloc_zeroed
    16: 0000000000000000     3 FUNC    GLOBAL DEFAULT    11 _RNvCs4CIB29Id3dw_7___rustc42___rust_alloc_error_handler_should_panic_v2
    17: 0000000000000000     1 FUNC    GLOBAL DEFAULT    12 _RNvCs4CIB29Id3dw_7___rustc35___rust_no_alloc_shim_is_unstable_v2
   422: 0000000000000000    19 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc26___rust_alloc_error_handler
   429: 0000000000000000   308 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc19rust_eh_personality
   349: 0000000000000000    10 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc12___rust_abort
   164: 0000000000000000    93 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc11___rdl_alloc
   167: 0000000000000000    11 FUNC    GLOBAL DEFAULT     7 _RNvCs4CIB29Id3dw_7___rustc13___rdl_dealloc
   169: 0000000000000000   167 FUNC    GLOBAL DEFAULT     9 _RNvCs4CIB29Id3dw_7___rustc13___rdl_realloc
   172: 0000000000000000   140 FUNC    GLOBAL DEFAULT    11 _RNvCs4CIB29Id3dw_7___rustc18___rdl_alloc_zeroed
   688: 0000000000000000   106 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc10rust_panic
   693: 0000000000000000   207 FUNC    GLOBAL DEFAULT     7 _RNvCs4CIB29Id3dw_7___rustc17___rust_drop_panic
   696: 0000000000000000    29 FUNC    GLOBAL DEFAULT    10 _RNvCs4CIB29Id3dw_7___rustc17rust_begin_unwind
   698: 0000000000000000   207 FUNC    GLOBAL DEFAULT    12 _RNvCs4CIB29Id3dw_7___rustc24___rust_foreign_exception
    26: 0000000000000000   161 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc18___rust_start_panic
    33: 0000000000000000    82 FUNC    GLOBAL DEFAULT     8 _RNvCs4CIB29Id3dw_7___rustc20___rust_panic_cleanup
    88: 0000000000000000   182 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc25___rdl_alloc_error_handler
     3: 0000000000000000    57 FUNC    GLOBAL DEFAULT     3 _RNvCs4CIB29Id3dw_7___rustc17___rust_probestack

Warning

I still need to implement appropriate LLVM version detection logic, I haven't figured out what the best way to wire that up would be.

r? bjorn3

Previously, std-internal symbols (like `__rust_alloc` or `rust_panic`)
were changed to now be mangled via a v0 scheme with the compiler version
hash (`_RNvCs4CIB29Id3dw_7___rustc10rust_panic`) to make it possible to
have multiple staticlibs (as long as they have different version hashes)
in the same program without symbol conflicts. But the personality
function remained unmangled, because LLVM hardcodes that name.

I made a change in LLVM that makes LLVM now check the suffix instead of
an exact match, so we can mangle the personality function with this
scheme.

This removes the last completely unmangled symbol from Rust staticlibs!
(though the mangling is still quite weak, so it's still not as nice as
it would ideally be).

Before, on a trivial staticlib:

```
readelf -s liblib.a | rg GLOBAL | rg -v " UND | HIDDEN " | rg -v ' _ZN'
     8: 0000000000000000     5 FUNC    GLOBAL DEFAULT     3 _RNvCseCSg29WUqSe_7___rustc12___rust_alloc
    10: 0000000000000000     5 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc14___rust_dealloc
    12: 0000000000000000     5 FUNC    GLOBAL DEFAULT     7 _RNvCseCSg29WUqSe_7___rustc14___rust_realloc
    14: 0000000000000000     5 FUNC    GLOBAL DEFAULT     9 _RNvCseCSg29WUqSe_7___rustc19___rust_alloc_zeroed
    16: 0000000000000000     3 FUNC    GLOBAL DEFAULT    11 _RNvCseCSg29WUqSe_7___rustc42___rust_alloc_error_handler_should_panic_v2
    17: 0000000000000000     1 FUNC    GLOBAL DEFAULT    12 _RNvCseCSg29WUqSe_7___rustc35___rust_no_alloc_shim_is_unstable_v2
  3383: 0000000000000000   111 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc10rust_panic
  3387: 0000000000000000    93 FUNC    GLOBAL DEFAULT     7 _RNvCseCSg29WUqSe_7___rustc11___rdl_alloc
  3390: 0000000000000000    10 FUNC    GLOBAL DEFAULT     9 _RNvCseCSg29WUqSe_7___rustc12___rust_abort
  3391: 0000000000000000     6 FUNC    GLOBAL DEFAULT    11 _RNvCseCSg29WUqSe_7___rustc13___rdl_dealloc
  3393: 0000000000000000   167 FUNC    GLOBAL DEFAULT    13 _RNvCseCSg29WUqSe_7___rustc13___rdl_realloc
  3396: 0000000000000000   203 FUNC    GLOBAL DEFAULT    15 _RNvCseCSg29WUqSe_7___rustc17___rust_drop_panic
  3399: 0000000000000000    29 FUNC    GLOBAL DEFAULT    18 _RNvCseCSg29WUqSe_7___rustc17rust_begin_unwind
  3401: 0000000000000000   140 FUNC    GLOBAL DEFAULT    20 _RNvCseCSg29WUqSe_7___rustc18___rdl_alloc_zeroed
  3404: 0000000000000000   203 FUNC    GLOBAL DEFAULT    22 _RNvCseCSg29WUqSe_7___rustc24___rust_foreign_exception
  3405: 0000000000000000    19 FUNC    GLOBAL DEFAULT    25 _RNvCseCSg29WUqSe_7___rustc26___rust_alloc_error_handler
  4410: 0000000000000000  1471 FUNC    GLOBAL DEFAULT   2752 rust_eh_personality
    25: 0000000000000000   161 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc18___rust_start_panic
    32: 0000000000000000    82 FUNC    GLOBAL DEFAULT     8 _RNvCseCSg29WUqSe_7___rustc20___rust_panic_cleanup
   249: 0000000000000000   182 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc25___rdl_alloc_error_handler
     3: 0000000000000000    57 FUNC    GLOBAL DEFAULT     3 _RNvCseCSg29WUqSe_7___rustc17___rust_probestack
```

After:

```
     8: 0000000000000000     5 FUNC    GLOBAL DEFAULT     3 _RNvCs4CIB29Id3dw_7___rustc12___rust_alloc
    10: 0000000000000000     5 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc14___rust_dealloc
    12: 0000000000000000     5 FUNC    GLOBAL DEFAULT     7 _RNvCs4CIB29Id3dw_7___rustc14___rust_realloc
    14: 0000000000000000     5 FUNC    GLOBAL DEFAULT     9 _RNvCs4CIB29Id3dw_7___rustc19___rust_alloc_zeroed
    16: 0000000000000000     3 FUNC    GLOBAL DEFAULT    11 _RNvCs4CIB29Id3dw_7___rustc42___rust_alloc_error_handler_should_panic_v2
    17: 0000000000000000     1 FUNC    GLOBAL DEFAULT    12 _RNvCs4CIB29Id3dw_7___rustc35___rust_no_alloc_shim_is_unstable_v2
   422: 0000000000000000    19 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc26___rust_alloc_error_handler
   429: 0000000000000000   308 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc19rust_eh_personality
   349: 0000000000000000    10 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc12___rust_abort
   164: 0000000000000000    93 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc11___rdl_alloc
   167: 0000000000000000    11 FUNC    GLOBAL DEFAULT     7 _RNvCs4CIB29Id3dw_7___rustc13___rdl_dealloc
   169: 0000000000000000   167 FUNC    GLOBAL DEFAULT     9 _RNvCs4CIB29Id3dw_7___rustc13___rdl_realloc
   172: 0000000000000000   140 FUNC    GLOBAL DEFAULT    11 _RNvCs4CIB29Id3dw_7___rustc18___rdl_alloc_zeroed
   688: 0000000000000000   106 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc10rust_panic
   693: 0000000000000000   207 FUNC    GLOBAL DEFAULT     7 _RNvCs4CIB29Id3dw_7___rustc17___rust_drop_panic
   696: 0000000000000000    29 FUNC    GLOBAL DEFAULT    10 _RNvCs4CIB29Id3dw_7___rustc17rust_begin_unwind
   698: 0000000000000000   207 FUNC    GLOBAL DEFAULT    12 _RNvCs4CIB29Id3dw_7___rustc24___rust_foreign_exception
    26: 0000000000000000   161 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc18___rust_start_panic
    33: 0000000000000000    82 FUNC    GLOBAL DEFAULT     8 _RNvCs4CIB29Id3dw_7___rustc20___rust_panic_cleanup
    88: 0000000000000000   182 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc25___rdl_alloc_error_handler
     3: 0000000000000000    57 FUNC    GLOBAL DEFAULT     3 _RNvCs4CIB29Id3dw_7___rustc17___rust_probestack
```
@rustbot
Copy link
Collaborator

rustbot commented Nov 2, 2025

Some changes occurred in compiler/rustc_codegen_ssa

cc @WaffleLapkin

@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Nov 2, 2025
@Noratrieb Noratrieb marked this pull request as draft November 2, 2025 20:29
@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 2, 2025
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-gcc failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test [codegen-units] tests/codegen-units/partitioning/vtable-through-const.rs ... ok

failures:

---- [codegen-units] tests/codegen-units/item-collection/cross-crate-closures.rs stdout ----
------rustc stdout------------------------------
MONO_ITEM fn cgu_extern_closures::inlined_fn @@ cross_crate_closures.d6800087111a7d7c-cgu.0[External]
MONO_ITEM fn cgu_extern_closures::inlined_fn::{closure#0} @@ cross_crate_closures.d6800087111a7d7c-cgu.0[External]
MONO_ITEM fn cgu_extern_closures::inlined_fn_generic::<i32> @@ cross_crate_closures.d6800087111a7d7c-cgu.0[External]
MONO_ITEM fn cgu_extern_closures::inlined_fn_generic::<i32>::{closure#0} @@ cross_crate_closures.d6800087111a7d7c-cgu.0[External]
MONO_ITEM fn main @@ cross_crate_closures.d6800087111a7d7c-cgu.0[External]

------rustc stderr------------------------------
error: linking with `cc` failed: exit status: 1
  |
  = note:  "cc" "-m64" "/tmp/rustcMfBwoK/symbols.o" "<1 object files omitted>" "-Wl,--as-needed" "-Wl,-Bdynamic" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-units/item-collection/cross-crate-closures/auxiliary/libcgu_extern_closures.so" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-180f3921868eaf7f.so" "-Wl,-Bstatic" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-*.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcMfBwoK/raw-dylibs" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-units/item-collection/cross-crate-closures/auxiliary" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-units/item-collection/cross-crate-closures/cross-crate-closures" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" "-Wl,-rpath,$ORIGIN/auxiliary,-rpath,$ORIGIN/../../../../stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib,--enable-new-dtags,-z,origin"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: rust-lld: error: undefined symbol: rust_eh_personality
          >>> referenced by fake.c
          >>>               /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-units/item-collection/cross-crate-closures/cross-crate-closures.cross_crate_closures.d6800087111a7d7c-cgu.0.rcgu.o:(DW.ref.rust_eh_personality)
          collect2: error: ld returned 1 exit status
          

error: aborting due to 1 previous error


------------------------------------------

error: compilation failed!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/codegen-units/item-collection/cross-crate-closures.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "-Zcodegen-backend=gcc" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "-Z" "human_readable_cgu_names" "-O" "-Zprint-mono-items" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-units/item-collection/cross-crate-closures" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-units/item-collection/cross-crate-closures/auxiliary" "-Clink-dead-code" "-Zinline-mir=no"
--- stdout -------------------------------
MONO_ITEM fn cgu_extern_closures::inlined_fn @@ cross_crate_closures.d6800087111a7d7c-cgu.0[External]
MONO_ITEM fn cgu_extern_closures::inlined_fn::{closure#0} @@ cross_crate_closures.d6800087111a7d7c-cgu.0[External]
MONO_ITEM fn cgu_extern_closures::inlined_fn_generic::<i32> @@ cross_crate_closures.d6800087111a7d7c-cgu.0[External]
MONO_ITEM fn cgu_extern_closures::inlined_fn_generic::<i32>::{closure#0} @@ cross_crate_closures.d6800087111a7d7c-cgu.0[External]
MONO_ITEM fn main @@ cross_crate_closures.d6800087111a7d7c-cgu.0[External]
------------------------------------------
--- stderr -------------------------------
error: linking with `cc` failed: exit status: 1
  |
  = note:  "cc" "-m64" "/tmp/rustcMfBwoK/symbols.o" "<1 object files omitted>" "-Wl,--as-needed" "-Wl,-Bdynamic" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-units/item-collection/cross-crate-closures/auxiliary/libcgu_extern_closures.so" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-180f3921868eaf7f.so" "-Wl,-Bstatic" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-*.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcMfBwoK/raw-dylibs" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-units/item-collection/cross-crate-closures/auxiliary" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-units/item-collection/cross-crate-closures/cross-crate-closures" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" "-Wl,-rpath,$ORIGIN/auxiliary,-rpath,$ORIGIN/../../../../stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib,--enable-new-dtags,-z,origin"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: rust-lld: error: undefined symbol: rust_eh_personality
          >>> referenced by fake.c
          >>>               /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-units/item-collection/cross-crate-closures/cross-crate-closures.cross_crate_closures.d6800087111a7d7c-cgu.0.rcgu.o:(DW.ref.rust_eh_personality)
          collect2: error: ld returned 1 exit status
          

error: aborting due to 1 previous error
------------------------------------------

For more information how to resolve CI failures of this job, visit this link.

@workingjubilee
Copy link
Member

re: LLVM version-detection, do you mean llvm_util::get_version() or?

@bors
Copy link
Collaborator

bors commented Nov 3, 2025

☔ The latest upstream changes (presumably #148420) made this pull request unmergeable. Please resolve the merge conflicts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants