Skip to main content

rustc_dump_symbol_name

Attribute rustc_dump_symbol_name 

Source
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