@@ -131,6 +131,9 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, _: LocalCrate) -> DefIdMap<S
131131 used : codegen_attrs. flags . contains ( CodegenFnAttrFlags :: USED_COMPILER )
132132 || codegen_attrs. flags . contains ( CodegenFnAttrFlags :: USED_LINKER )
133133 || used,
134+ rustc_std_internal_symbol : codegen_attrs
135+ . flags
136+ . contains ( CodegenFnAttrFlags :: RUSTC_STD_INTERNAL_SYMBOL ) ,
134137 } ;
135138 ( def_id. to_def_id ( ) , info)
136139 } )
@@ -143,6 +146,7 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, _: LocalCrate) -> DefIdMap<S
143146 level : SymbolExportLevel :: C ,
144147 kind : SymbolExportKind :: Data ,
145148 used : false ,
149+ rustc_std_internal_symbol : false ,
146150 } ,
147151 ) ;
148152 }
@@ -191,6 +195,7 @@ fn exported_symbols_provider_local<'tcx>(
191195 level : info. level ,
192196 kind : SymbolExportKind :: Text ,
193197 used : info. used ,
198+ rustc_std_internal_symbol : info. rustc_std_internal_symbol ,
194199 } ,
195200 )
196201 } )
@@ -207,6 +212,7 @@ fn exported_symbols_provider_local<'tcx>(
207212 level : SymbolExportLevel :: C ,
208213 kind : SymbolExportKind :: Text ,
209214 used : false ,
215+ rustc_std_internal_symbol : false ,
210216 } ,
211217 ) ) ;
212218 }
@@ -230,6 +236,7 @@ fn exported_symbols_provider_local<'tcx>(
230236 level : SymbolExportLevel :: Rust ,
231237 kind : SymbolExportKind :: Text ,
232238 used : false ,
239+ rustc_std_internal_symbol : true ,
233240 } ,
234241 ) ) ;
235242 }
@@ -250,6 +257,7 @@ fn exported_symbols_provider_local<'tcx>(
250257 level : SymbolExportLevel :: C ,
251258 kind : SymbolExportKind :: Data ,
252259 used : false ,
260+ rustc_std_internal_symbol : false ,
253261 } ,
254262 )
255263 } ) ) ;
@@ -275,6 +283,7 @@ fn exported_symbols_provider_local<'tcx>(
275283 level : SymbolExportLevel :: C ,
276284 kind : SymbolExportKind :: Data ,
277285 used : false ,
286+ rustc_std_internal_symbol : false ,
278287 } ,
279288 )
280289 } ) ) ;
@@ -292,6 +301,7 @@ fn exported_symbols_provider_local<'tcx>(
292301 level : SymbolExportLevel :: C ,
293302 kind : SymbolExportKind :: Data ,
294303 used : true ,
304+ rustc_std_internal_symbol : false ,
295305 } ,
296306 ) ) ;
297307 }
@@ -367,6 +377,8 @@ fn exported_symbols_provider_local<'tcx>(
367377 }
368378 }
369379
380+ // Note: These all set rustc_std_internal_symbol to false as generic functions must not
381+ // be marked with this attribute and we are only handling generic functions here.
370382 match * mono_item {
371383 MonoItem :: Fn ( Instance { def : InstanceKind :: Item ( def) , args } ) => {
372384 let has_generics = args. non_erasable_generics ( ) . next ( ) . is_some ( ) ;
@@ -382,6 +394,7 @@ fn exported_symbols_provider_local<'tcx>(
382394 level : SymbolExportLevel :: Rust ,
383395 kind : SymbolExportKind :: Text ,
384396 used : false ,
397+ rustc_std_internal_symbol : false ,
385398 } ,
386399 ) ) ;
387400 }
@@ -404,6 +417,7 @@ fn exported_symbols_provider_local<'tcx>(
404417 level : SymbolExportLevel :: Rust ,
405418 kind : SymbolExportKind :: Text ,
406419 used : false ,
420+ rustc_std_internal_symbol : false ,
407421 } ,
408422 ) ) ;
409423 }
@@ -420,6 +434,7 @@ fn exported_symbols_provider_local<'tcx>(
420434 level : SymbolExportLevel :: Rust ,
421435 kind : SymbolExportKind :: Text ,
422436 used : false ,
437+ rustc_std_internal_symbol : false ,
423438 } ,
424439 ) ) ;
425440 }
@@ -430,6 +445,7 @@ fn exported_symbols_provider_local<'tcx>(
430445 level : SymbolExportLevel :: Rust ,
431446 kind : SymbolExportKind :: Text ,
432447 used : false ,
448+ rustc_std_internal_symbol : false ,
433449 } ,
434450 ) ) ;
435451 }
0 commit comments