Skip to content

Commit 1500598

Browse files
committed
Mangle in invalid #[no_mangle] contexts
Closes rust-lang#86261
1 parent 60f1a2f commit 1500598

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

compiler/rustc_typeck/src/collect.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -2724,7 +2724,10 @@ fn codegen_fn_attrs(tcx: TyCtxt<'_>, id: DefId) -> CodegenFnAttrs {
27242724
} else if tcx.sess.check_name(attr, sym::naked) {
27252725
codegen_fn_attrs.flags |= CodegenFnAttrFlags::NAKED;
27262726
} else if tcx.sess.check_name(attr, sym::no_mangle) {
2727-
codegen_fn_attrs.flags |= CodegenFnAttrFlags::NO_MANGLE;
2727+
// no_mangle is ignored on items other than functions and statics
2728+
if let DefKind::Static | DefKind::Fn | DefKind::AssocFn = tcx.def_kind(id) {
2729+
codegen_fn_attrs.flags |= CodegenFnAttrFlags::NO_MANGLE;
2730+
}
27282731
} else if tcx.sess.check_name(attr, sym::no_coverage) {
27292732
codegen_fn_attrs.flags |= CodegenFnAttrFlags::NO_COVERAGE;
27302733
} else if tcx.sess.check_name(attr, sym::rustc_std_internal_symbol) {

0 commit comments

Comments
 (0)