Skip to content

Leak sanitizer does not work on aarch64 macOS #98473

@BlackHoleFox

Description

@BlackHoleFox

I tried this code:

fn main() { println!("leak time"); <snip some Objective-C code that has leaks> }
[package] name = "example" version = "0.1.0" edition = "2021" [dependencies] mac-notification-sys = "0.5.2"
export RUSTFLAGS="-Z sanitizer=leak"; cargo +nightly run

I expected to see this happen: The binary would be built and run with the leak sanitizer enabled.

Instead, this happened:
rustc writes an unsupported error and exits. The sanitizer docs state aarch64-apple-darwin to be a supported target, which conflicts with the actual behavior. I don't know if the documentation is incorrect or if there's a compiler bug somewhere.

Meta

rustc --version --verbose:

rustc 1.63.0-nightly (43347397f 2022-06-23) binary: rustc commit-hash: 43347397f7c5ca9a670a3bb3890c7187e24a52ab commit-date: 2022-06-23 host: aarch64-apple-darwin release: 1.63.0-nightly LLVM version: 14.0.5 
Backtrace

error: failed to run `rustc` to learn about target-specific information Caused by: process didn't exit successfully: `rustc - --crate-name ___ --print=file-names -Z sanitizer=leak --crate-type bin --crate-type rlib --crate-type dylib --crate-type cdylib --crate-type staticlib --crate-type proc-macro --print=sysroot --print=cfg` (exit status: 1) --- stdout ___ lib___.rlib lib___.dylib lib___.dylib lib___.a lib___.dylib /Users/fox/.rustup/toolchains/nightly-aarch64-apple-darwin debug_assertions panic="unwind" proc_macro sanitize="leak" target_abi="" target_arch="aarch64" target_endian="little" target_env="" target_family="unix" target_feature="aes" target_feature="crc" target_feature="dit" target_feature="dotprod" target_feature="dpb" target_feature="dpb2" target_feature="fcma" target_feature="fhm" target_feature="flagm" target_feature="fp16" target_feature="frintts" target_feature="jsconv" target_feature="llvm14-builtins-abi" target_feature="lor" target_feature="lse" target_feature="neon" target_feature="paca" target_feature="pacg" target_feature="pan" target_feature="pmuv3" target_feature="ras" target_feature="rcpc" target_feature="rcpc2" target_feature="rdm" target_feature="sb" target_feature="sha2" target_feature="sha3" target_feature="ssbs" target_feature="v8.1a" target_feature="v8.2a" target_feature="v8.3a" target_feature="v8.4a" target_feature="vh" target_has_atomic="128" target_has_atomic="16" target_has_atomic="32" target_has_atomic="64" target_has_atomic="8" target_has_atomic="ptr" target_has_atomic_equal_alignment="128" target_has_atomic_equal_alignment="16" target_has_atomic_equal_alignment="32" target_has_atomic_equal_alignment="64" target_has_atomic_equal_alignment="8" target_has_atomic_equal_alignment="ptr" target_has_atomic_load_store="128" target_has_atomic_load_store="16" target_has_atomic_load_store="32" target_has_atomic_load_store="64" target_has_atomic_load_store="8" target_has_atomic_load_store="ptr" target_os="macos" target_pointer_width="64" target_thread_local target_vendor="apple" unix --- stderr error: leak sanitizer is not supported for this target error: aborting due to previous error 

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-sanitizersArea: Sanitizers for correctness and code qualityC-bugCategory: This is a bug.O-macosOperating system: macOS

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions