@@ -105,21 +105,20 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, _: LocalCrate) -> DefIdMap<S
105
105
}
106
106
} )
107
107
. map ( |def_id| {
108
- let codegen_attrs = tcx. codegen_fn_attrs ( def_id. to_def_id ( ) ) ;
109
108
// We won't link right if this symbol is stripped during LTO.
110
109
let name = tcx. symbol_name ( Instance :: mono ( tcx, def_id. to_def_id ( ) ) ) . name ;
111
110
// We have to preserve the symbols of the built-in functions during LTO.
112
111
let is_builtin_fn = is_compiler_builtins
113
112
&& 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" ;
117
115
118
116
let export_level = if special_runtime_crate {
119
117
SymbolExportLevel :: Rust
120
118
} else {
121
119
symbol_export_level ( tcx, def_id. to_def_id ( ) )
122
120
} ;
121
+ let codegen_attrs = tcx. codegen_fn_attrs ( def_id. to_def_id ( ) ) ;
123
122
debug ! (
124
123
"EXPORTED SYMBOL (local): {} ({:?})" ,
125
124
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
139
138
used : codegen_attrs. flags . contains ( CodegenFnAttrFlags :: USED )
140
139
|| codegen_attrs. flags . contains ( CodegenFnAttrFlags :: USED_LINKER )
141
140
|| used,
142
- used_compiler : is_builtin_fn,
143
141
} ;
144
142
( def_id. to_def_id ( ) , info)
145
143
} )
@@ -152,7 +150,6 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, _: LocalCrate) -> DefIdMap<S
152
150
level : SymbolExportLevel :: C ,
153
151
kind : SymbolExportKind :: Data ,
154
152
used : false ,
155
- used_compiler : false ,
156
153
} ,
157
154
) ;
158
155
}
@@ -201,7 +198,6 @@ fn exported_symbols_provider_local(
201
198
level : info. level ,
202
199
kind : SymbolExportKind :: Text ,
203
200
used : info. used ,
204
- used_compiler : false ,
205
201
} ,
206
202
)
207
203
} )
@@ -218,7 +214,6 @@ fn exported_symbols_provider_local(
218
214
level : SymbolExportLevel :: C ,
219
215
kind : SymbolExportKind :: Text ,
220
216
used : false ,
221
- used_compiler : false ,
222
217
} ,
223
218
) ) ;
224
219
}
@@ -238,7 +233,6 @@ fn exported_symbols_provider_local(
238
233
level : SymbolExportLevel :: Rust ,
239
234
kind : SymbolExportKind :: Text ,
240
235
used : false ,
241
- used_compiler : false ,
242
236
} ,
243
237
) ) ;
244
238
}
@@ -251,7 +245,6 @@ fn exported_symbols_provider_local(
251
245
level : SymbolExportLevel :: Rust ,
252
246
kind : SymbolExportKind :: Data ,
253
247
used : false ,
254
- used_compiler : false ,
255
248
} ,
256
249
) )
257
250
}
@@ -271,7 +264,6 @@ fn exported_symbols_provider_local(
271
264
level : SymbolExportLevel :: C ,
272
265
kind : SymbolExportKind :: Data ,
273
266
used : false ,
274
- used_compiler : false ,
275
267
} ,
276
268
)
277
269
} ) ) ;
@@ -297,7 +289,6 @@ fn exported_symbols_provider_local(
297
289
level : SymbolExportLevel :: C ,
298
290
kind : SymbolExportKind :: Data ,
299
291
used : false ,
300
- used_compiler : false ,
301
292
} ,
302
293
)
303
294
} ) ) ;
@@ -315,7 +306,6 @@ fn exported_symbols_provider_local(
315
306
level : SymbolExportLevel :: C ,
316
307
kind : SymbolExportKind :: Data ,
317
308
used : true ,
318
- used_compiler : false ,
319
309
} ,
320
310
) ) ;
321
311
}
@@ -356,7 +346,6 @@ fn exported_symbols_provider_local(
356
346
level : SymbolExportLevel :: Rust ,
357
347
kind : SymbolExportKind :: Text ,
358
348
used : false ,
359
- used_compiler : false ,
360
349
} ,
361
350
) ) ;
362
351
}
@@ -373,7 +362,6 @@ fn exported_symbols_provider_local(
373
362
level : SymbolExportLevel :: Rust ,
374
363
kind : SymbolExportKind :: Text ,
375
364
used : false ,
376
- used_compiler : false ,
377
365
} ,
378
366
) ) ;
379
367
}
0 commit comments