@@ -25,10 +25,7 @@ impl Target {
25
25
let mut base = Target {
26
26
llvm_target : json. llvm_target ,
27
27
metadata : Default :: default ( ) ,
28
- pointer_width : json
29
- . target_pointer_width
30
- . parse ( )
31
- . map_err ( |err| format ! ( "invalid target-pointer-width: {err}" ) ) ?,
28
+ pointer_width : json. target_pointer_width ,
32
29
data_layout : json. data_layout ,
33
30
arch : json. arch ,
34
31
options : Default :: default ( ) ,
@@ -245,19 +242,17 @@ impl ToJson for Target {
245
242
target. update_to_cli ( ) ;
246
243
247
244
macro_rules! target_val {
248
- ( $attr: ident) => { {
249
- let name = ( stringify!( $attr) ) . replace( "_" , "-" ) ;
250
- d. insert( name, target. $attr. to_json( ) ) ;
245
+ ( $attr: ident) => {
246
+ target_val!( $attr, ( stringify!( $attr) ) . replace( "_" , "-" ) )
247
+ } ;
248
+ ( $attr: ident, $json_name: expr) => { {
249
+ let name = $json_name;
250
+ d. insert( name. into( ) , target. $attr. to_json( ) ) ;
251
251
} } ;
252
252
}
253
253
254
254
macro_rules! target_option_val {
255
- ( $attr: ident) => { {
256
- let name = ( stringify!( $attr) ) . replace( "_" , "-" ) ;
257
- if default . $attr != target. $attr {
258
- d. insert( name, target. $attr. to_json( ) ) ;
259
- }
260
- } } ;
255
+ ( $attr: ident) => { { target_option_val!( $attr, ( stringify!( $attr) ) . replace( "_" , "-" ) ) } } ;
261
256
( $attr: ident, $json_name: expr) => { {
262
257
let name = $json_name;
263
258
if default . $attr != target. $attr {
@@ -290,7 +285,7 @@ impl ToJson for Target {
290
285
291
286
target_val ! ( llvm_target) ;
292
287
target_val ! ( metadata) ;
293
- d . insert ( "target-pointer-width" . to_string ( ) , self . pointer_width . to_string ( ) . to_json ( ) ) ;
288
+ target_val ! ( pointer_width , "target-pointer-width" ) ;
294
289
target_val ! ( arch) ;
295
290
target_val ! ( data_layout) ;
296
291
@@ -463,7 +458,7 @@ struct TargetSpecJsonMetadata {
463
458
#[ serde( deny_unknown_fields) ]
464
459
struct TargetSpecJson {
465
460
llvm_target : StaticCow < str > ,
466
- target_pointer_width : String ,
461
+ target_pointer_width : u16 ,
467
462
data_layout : StaticCow < str > ,
468
463
arch : StaticCow < str > ,
469
464
0 commit comments