@@ -105,21 +105,20 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, _: LocalCrate) -> DefIdMap<S
105105 }
106106 } )
107107 . map ( |def_id| {
108- let codegen_attrs = tcx. codegen_fn_attrs ( def_id. to_def_id ( ) ) ;
109108 // We won't link right if this symbol is stripped during LTO.
110109 let name = tcx. symbol_name ( Instance :: mono ( tcx, def_id. to_def_id ( ) ) ) . name ;
111110 // We have to preserve the symbols of the built-in functions during LTO.
112111 let is_builtin_fn = is_compiler_builtins
113112 && symbol_export_level ( tcx, def_id. to_def_id ( ) )
114- . is_below_threshold ( SymbolExportLevel :: C )
115- && codegen_attrs. flags . contains ( CodegenFnAttrFlags :: NO_MANGLE ) ;
116- let used = name == "rust_eh_personality" ;
113+ . is_below_threshold ( SymbolExportLevel :: C ) ;
114+ let used = is_builtin_fn || name == "rust_eh_personality" ;
117115
118116 let export_level = if special_runtime_crate {
119117 SymbolExportLevel :: Rust
120118 } else {
121119 symbol_export_level ( tcx, def_id. to_def_id ( ) )
122120 } ;
121+ let codegen_attrs = tcx. codegen_fn_attrs ( def_id. to_def_id ( ) ) ;
123122 debug ! (
124123 "EXPORTED SYMBOL (local): {} ({:?})" ,
125124 tcx. symbol_name( Instance :: mono( tcx, def_id. to_def_id( ) ) ) ,
@@ -139,7 +138,6 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, _: LocalCrate) -> DefIdMap<S
139138 used : codegen_attrs. flags . contains ( CodegenFnAttrFlags :: USED )
140139 || codegen_attrs. flags . contains ( CodegenFnAttrFlags :: USED_LINKER )
141140 || used,
142- used_compiler : is_builtin_fn,
143141 } ;
144142 ( def_id. to_def_id ( ) , info)
145143 } )
@@ -152,7 +150,6 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, _: LocalCrate) -> DefIdMap<S
152150 level : SymbolExportLevel :: C ,
153151 kind : SymbolExportKind :: Data ,
154152 used : false ,
155- used_compiler : false ,
156153 } ,
157154 ) ;
158155 }
@@ -201,7 +198,6 @@ fn exported_symbols_provider_local(
201198 level : info. level ,
202199 kind : SymbolExportKind :: Text ,
203200 used : info. used ,
204- used_compiler : false ,
205201 } ,
206202 )
207203 } )
@@ -218,7 +214,6 @@ fn exported_symbols_provider_local(
218214 level : SymbolExportLevel :: C ,
219215 kind : SymbolExportKind :: Text ,
220216 used : false ,
221- used_compiler : false ,
222217 } ,
223218 ) ) ;
224219 }
@@ -238,7 +233,6 @@ fn exported_symbols_provider_local(
238233 level : SymbolExportLevel :: Rust ,
239234 kind : SymbolExportKind :: Text ,
240235 used : false ,
241- used_compiler : false ,
242236 } ,
243237 ) ) ;
244238 }
@@ -251,7 +245,6 @@ fn exported_symbols_provider_local(
251245 level : SymbolExportLevel :: Rust ,
252246 kind : SymbolExportKind :: Data ,
253247 used : false ,
254- used_compiler : false ,
255248 } ,
256249 ) )
257250 }
@@ -271,7 +264,6 @@ fn exported_symbols_provider_local(
271264 level : SymbolExportLevel :: C ,
272265 kind : SymbolExportKind :: Data ,
273266 used : false ,
274- used_compiler : false ,
275267 } ,
276268 )
277269 } ) ) ;
@@ -297,7 +289,6 @@ fn exported_symbols_provider_local(
297289 level : SymbolExportLevel :: C ,
298290 kind : SymbolExportKind :: Data ,
299291 used : false ,
300- used_compiler : false ,
301292 } ,
302293 )
303294 } ) ) ;
@@ -315,7 +306,6 @@ fn exported_symbols_provider_local(
315306 level : SymbolExportLevel :: C ,
316307 kind : SymbolExportKind :: Data ,
317308 used : true ,
318- used_compiler : false ,
319309 } ,
320310 ) ) ;
321311 }
@@ -356,7 +346,6 @@ fn exported_symbols_provider_local(
356346 level : SymbolExportLevel :: Rust ,
357347 kind : SymbolExportKind :: Text ,
358348 used : false ,
359- used_compiler : false ,
360349 } ,
361350 ) ) ;
362351 }
@@ -373,7 +362,6 @@ fn exported_symbols_provider_local(
373362 level : SymbolExportLevel :: Rust ,
374363 kind : SymbolExportKind :: Text ,
375364 used : false ,
376- used_compiler : false ,
377365 } ,
378366 ) ) ;
379367 }
0 commit comments