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 -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_22rustc_dump_symbol_name7mangled)
--> $DIR/rustc_dump_symbol_name.rs:7:1
 |
7 | #[rustc_dump_symbol_name]
 | ^^^^^^^^^^^^^^^^^^^^^^^^^

error: demangling(rustc_dump_symbol_name[6981ee133444a33d]::mangled)
--> $DIR/rustc_dump_symbol_name.rs:7:1
 |
7 | #[rustc_dump_symbol_name]
 | ^^^^^^^^^^^^^^^^^^^^^^^^^

error: demangling-alt(rustc_dump_symbol_name::mangled)
--> $DIR/rustc_dump_symbol_name.rs:7:1
 |
7 | #[rustc_dump_symbol_name]
 | ^^^^^^^^^^^^^^^^^^^^^^^^^

error: symbol-name(no_mangle)
 --> $DIR/rustc_dump_symbol_name.rs:10:1
  |
10 | #[rustc_dump_symbol_name]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^

error: symbol-name(abort)
 --> $DIR/rustc_dump_symbol_name.rs:15:5
  |
15 |     #[rustc_dump_symbol_name]
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 5 previous errors