@@ -131,6 +131,9 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, _: LocalCrate) -> DefIdMap<S
131
131
used : codegen_attrs. flags . contains ( CodegenFnAttrFlags :: USED )
132
132
|| codegen_attrs. flags . contains ( CodegenFnAttrFlags :: USED_LINKER )
133
133
|| used,
134
+ rustc_std_internal_symbol : codegen_attrs
135
+ . flags
136
+ . contains ( CodegenFnAttrFlags :: RUSTC_STD_INTERNAL_SYMBOL ) ,
134
137
} ;
135
138
( def_id. to_def_id ( ) , info)
136
139
} )
@@ -143,6 +146,7 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, _: LocalCrate) -> DefIdMap<S
143
146
level : SymbolExportLevel :: C ,
144
147
kind : SymbolExportKind :: Data ,
145
148
used : false ,
149
+ rustc_std_internal_symbol : false ,
146
150
} ,
147
151
) ;
148
152
}
@@ -191,6 +195,7 @@ fn exported_symbols_provider_local<'tcx>(
191
195
level : info. level ,
192
196
kind : SymbolExportKind :: Text ,
193
197
used : info. used ,
198
+ rustc_std_internal_symbol : info. rustc_std_internal_symbol ,
194
199
} ,
195
200
)
196
201
} )
@@ -207,6 +212,7 @@ fn exported_symbols_provider_local<'tcx>(
207
212
level : SymbolExportLevel :: C ,
208
213
kind : SymbolExportKind :: Text ,
209
214
used : false ,
215
+ rustc_std_internal_symbol : false ,
210
216
} ,
211
217
) ) ;
212
218
}
@@ -229,6 +235,7 @@ fn exported_symbols_provider_local<'tcx>(
229
235
level : SymbolExportLevel :: Rust ,
230
236
kind : SymbolExportKind :: Text ,
231
237
used : false ,
238
+ rustc_std_internal_symbol : true ,
232
239
} ,
233
240
) ) ;
234
241
}
@@ -243,6 +250,7 @@ fn exported_symbols_provider_local<'tcx>(
243
250
level : SymbolExportLevel :: Rust ,
244
251
kind : SymbolExportKind :: Data ,
245
252
used : false ,
253
+ rustc_std_internal_symbol : true ,
246
254
} ,
247
255
) )
248
256
}
@@ -262,6 +270,7 @@ fn exported_symbols_provider_local<'tcx>(
262
270
level : SymbolExportLevel :: C ,
263
271
kind : SymbolExportKind :: Data ,
264
272
used : false ,
273
+ rustc_std_internal_symbol : false ,
265
274
} ,
266
275
)
267
276
} ) ) ;
@@ -287,6 +296,7 @@ fn exported_symbols_provider_local<'tcx>(
287
296
level : SymbolExportLevel :: C ,
288
297
kind : SymbolExportKind :: Data ,
289
298
used : false ,
299
+ rustc_std_internal_symbol : false ,
290
300
} ,
291
301
)
292
302
} ) ) ;
@@ -304,6 +314,7 @@ fn exported_symbols_provider_local<'tcx>(
304
314
level : SymbolExportLevel :: C ,
305
315
kind : SymbolExportKind :: Data ,
306
316
used : true ,
317
+ rustc_std_internal_symbol : false ,
307
318
} ,
308
319
) ) ;
309
320
}
@@ -379,6 +390,8 @@ fn exported_symbols_provider_local<'tcx>(
379
390
}
380
391
}
381
392
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.
382
395
match * mono_item {
383
396
MonoItem :: Fn ( Instance { def : InstanceKind :: Item ( def) , args } ) => {
384
397
let has_generics = args. non_erasable_generics ( ) . next ( ) . is_some ( ) ;
@@ -394,6 +407,7 @@ fn exported_symbols_provider_local<'tcx>(
394
407
level : SymbolExportLevel :: Rust ,
395
408
kind : SymbolExportKind :: Text ,
396
409
used : false ,
410
+ rustc_std_internal_symbol : false ,
397
411
} ,
398
412
) ) ;
399
413
}
@@ -416,6 +430,7 @@ fn exported_symbols_provider_local<'tcx>(
416
430
level : SymbolExportLevel :: Rust ,
417
431
kind : SymbolExportKind :: Text ,
418
432
used : false ,
433
+ rustc_std_internal_symbol : false ,
419
434
} ,
420
435
) ) ;
421
436
}
@@ -432,6 +447,7 @@ fn exported_symbols_provider_local<'tcx>(
432
447
level : SymbolExportLevel :: Rust ,
433
448
kind : SymbolExportKind :: Text ,
434
449
used : false ,
450
+ rustc_std_internal_symbol : false ,
435
451
} ,
436
452
) ) ;
437
453
}
@@ -442,6 +458,7 @@ fn exported_symbols_provider_local<'tcx>(
442
458
level : SymbolExportLevel :: Rust ,
443
459
kind : SymbolExportKind :: Text ,
444
460
used : false ,
461
+ rustc_std_internal_symbol : false ,
445
462
} ,
446
463
) ) ;
447
464
}
0 commit comments