Expand description
Dumps the symbol name of the annotated item, also demangling it if necessary.
See also the symbol_name query.
See AttributeKind::RustcDumpSymbolName for the internal representation of this attribute.
§Example
ⓘ
//@ dont-require-annotations: ERROR
//@ compile-flags: --crate-type lib --crate-name crate_name -Z ui-testing=no
//@ build-fail
#![feature(rustc_attrs)]
#[rustc_dump_symbol_name]
fn mangled() {}
#[rustc_dump_symbol_name]
#[unsafe(no_mangle)]
fn no_mangle() {}
unsafe extern "C" {
#[rustc_dump_symbol_name]
fn abort();
}produces:
error: symbol-name(_RNvCsCRATE_HASH_10crate_name7mangled)
--> $DIR/rustc_dump_symbol_name.rs:7:1
|
7 | / #[rustc_dump_symbol_name]
8 | | fn mangled() {}
| |____________^
|
= note: demangling(crate_name[8cfd4c3bf0e8f389]::mangled)
= note: demangling-alt(crate_name::mangled)
error: symbol-name(no_mangle)
--> $DIR/rustc_dump_symbol_name.rs:10:1
|
10 | / #[rustc_dump_symbol_name]
11 | | #[unsafe(no_mangle)]
12 | | fn no_mangle() {}
| |______________^
error: symbol-name(abort)
--> $DIR/rustc_dump_symbol_name.rs:15:5
|
15 | / #[rustc_dump_symbol_name]
16 | | fn abort();
| |_______________^
error: aborting due to 3 previous errors