@@ -46,6 +46,7 @@ use rustc_middle::util::Providers;
4646use rustc_session:: Session ;
4747use rustc_session:: config:: { OptLevel , OutputFilenames , PrintKind , PrintRequest } ;
4848use rustc_span:: Symbol ;
49+ use rustc_target:: spec:: { CodeModel , RelocModel , TlsModel } ;
4950
5051mod back {
5152 pub ( crate ) mod archive;
@@ -267,32 +268,27 @@ impl CodegenBackend for LlvmCodegenBackend {
267268 match req. kind {
268269 PrintKind :: RelocationModels => {
269270 writeln ! ( out, "Available relocation models:" ) . unwrap ( ) ;
270- for name in & [
271- "static" ,
272- "pic" ,
273- "pie" ,
274- "dynamic-no-pic" ,
275- "ropi" ,
276- "rwpi" ,
277- "ropi-rwpi" ,
278- "default" ,
279- ] {
271+ for name in RelocModel :: ALL
272+ . iter ( )
273+ . copied ( )
274+ . map ( RelocModel :: as_str)
275+ . into_iter ( )
276+ . chain ( [ "default" ] )
277+ {
280278 writeln ! ( out, " {name}" ) . unwrap ( ) ;
281279 }
282280 writeln ! ( out) . unwrap ( ) ;
283281 }
284282 PrintKind :: CodeModels => {
285283 writeln ! ( out, "Available code models:" ) . unwrap ( ) ;
286- for name in & [ "tiny" , "small" , "kernel" , "medium" , "large" ] {
284+ for name in CodeModel :: ALL . iter ( ) . copied ( ) . map ( CodeModel :: as_str ) {
287285 writeln ! ( out, " {name}" ) . unwrap ( ) ;
288286 }
289287 writeln ! ( out) . unwrap ( ) ;
290288 }
291289 PrintKind :: TlsModels => {
292290 writeln ! ( out, "Available TLS models:" ) . unwrap ( ) ;
293- for name in
294- & [ "global-dynamic" , "local-dynamic" , "initial-exec" , "local-exec" , "emulated" ]
295- {
291+ for name in TlsModel :: ALL . iter ( ) . copied ( ) . map ( TlsModel :: as_str) {
296292 writeln ! ( out, " {name}" ) . unwrap ( ) ;
297293 }
298294 writeln ! ( out) . unwrap ( ) ;
0 commit comments