@@ -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 }
@@ -229,6 +235,7 @@ fn exported_symbols_provider_local<'tcx>(
229235 level : SymbolExportLevel :: Rust ,
230236 kind : SymbolExportKind :: Text ,
231237 used : false ,
238+ rustc_std_internal_symbol : true ,
232239 } ,
233240 ) ) ;
234241 }
@@ -243,6 +250,7 @@ fn exported_symbols_provider_local<'tcx>(
243250 level : SymbolExportLevel :: Rust ,
244251 kind : SymbolExportKind :: Data ,
245252 used : false ,
253+ rustc_std_internal_symbol : true ,
246254 } ,
247255 ) )
248256 }
@@ -262,6 +270,7 @@ fn exported_symbols_provider_local<'tcx>(
262270 level : SymbolExportLevel :: C ,
263271 kind : SymbolExportKind :: Data ,
264272 used : false ,
273+ rustc_std_internal_symbol : false ,
265274 } ,
266275 )
267276 } ) ) ;
@@ -287,6 +296,7 @@ fn exported_symbols_provider_local<'tcx>(
287296 level : SymbolExportLevel :: C ,
288297 kind : SymbolExportKind :: Data ,
289298 used : false ,
299+ rustc_std_internal_symbol : false ,
290300 } ,
291301 )
292302 } ) ) ;
@@ -304,6 +314,7 @@ fn exported_symbols_provider_local<'tcx>(
304314 level : SymbolExportLevel :: C ,
305315 kind : SymbolExportKind :: Data ,
306316 used : true ,
317+ rustc_std_internal_symbol : false ,
307318 } ,
308319 ) ) ;
309320 }
@@ -379,6 +390,8 @@ fn exported_symbols_provider_local<'tcx>(
379390 }
380391 }
381392
393+ // Note: These all set rustc_std_internal_symbol to false as generic functions must not
394+ // be marked with this attribute and we are only handling generic functions here.
382395 match * mono_item {
383396 MonoItem :: Fn ( Instance { def : InstanceKind :: Item ( def) , args } ) => {
384397 let has_generics = args. non_erasable_generics ( ) . next ( ) . is_some ( ) ;
@@ -394,6 +407,7 @@ fn exported_symbols_provider_local<'tcx>(
394407 level : SymbolExportLevel :: Rust ,
395408 kind : SymbolExportKind :: Text ,
396409 used : false ,
410+ rustc_std_internal_symbol : false ,
397411 } ,
398412 ) ) ;
399413 }
@@ -416,6 +430,7 @@ fn exported_symbols_provider_local<'tcx>(
416430 level : SymbolExportLevel :: Rust ,
417431 kind : SymbolExportKind :: Text ,
418432 used : false ,
433+ rustc_std_internal_symbol : false ,
419434 } ,
420435 ) ) ;
421436 }
@@ -432,6 +447,7 @@ fn exported_symbols_provider_local<'tcx>(
432447 level : SymbolExportLevel :: Rust ,
433448 kind : SymbolExportKind :: Text ,
434449 used : false ,
450+ rustc_std_internal_symbol : false ,
435451 } ,
436452 ) ) ;
437453 }
@@ -442,6 +458,7 @@ fn exported_symbols_provider_local<'tcx>(
442458 level : SymbolExportLevel :: Rust ,
443459 kind : SymbolExportKind :: Text ,
444460 used : false ,
461+ rustc_std_internal_symbol : false ,
445462 } ,
446463 ) ) ;
447464 }
0 commit comments