};
let is_local_to_unit = is_node_local_to_unit(cx, node_id);
- let variable_type = common::def_ty(cx.tcx(), node_def_id, Substs::empty());
+ let variable_type = Instance::mono(cx.tcx(), node_def_id).ty(cx.tcx());
let type_metadata = type_metadata(cx, variable_type, span);
let var_name = tcx.item_name(node_def_id).to_string();
- let linkage_name = mangled_name_of_item(cx, node_def_id, "");
-
let var_name = CString::new(var_name).unwrap();
- let linkage_name = CString::new(linkage_name).unwrap();
+ let linkage_name = if no_mangle {
+ None
+ } else {
+ let linkage_name = mangled_name_of_item(cx, node_def_id, "");
+ Some(CString::new(linkage_name).unwrap())
+ };
let global_align = cx.align_of(variable_type);