]> git.lizzy.rs Git - rust.git/blobdiff - src/helpers.rs
rustup
[rust.git] / src / helpers.rs
index 5b820218a9dd7a2068a65b5d942c8643ef98657a..30fb28436298800db5edcf33f83e4f53c7554a7b 100644 (file)
@@ -13,7 +13,7 @@
     layout::{LayoutOf, TyAndLayout},
     List, TyCtxt,
 };
-use rustc_span::{def_id::CrateNum, Symbol};
+use rustc_span::{def_id::CrateNum, sym, Symbol};
 use rustc_target::abi::{Align, FieldsShape, Size, Variants};
 use rustc_target::spec::abi::Abi;
 
@@ -775,6 +775,14 @@ fn mark_immutable(&mut self, mplace: &MemPlace<Tag>) {
         this.alloc_mark_immutable(mplace.ptr.into_pointer_or_addr().unwrap().provenance.alloc_id)
             .unwrap();
     }
+
+    fn item_link_name(&self, def_id: DefId) -> Symbol {
+        let tcx = self.eval_context_ref().tcx;
+        match tcx.get_attrs(def_id, sym::link_name).filter_map(|a| a.value_str()).next() {
+            Some(name) => name,
+            None => tcx.item_name(def_id),
+        }
+    }
 }
 
 /// Check that the number of args is what we expect.