diff options
Diffstat (limited to 'library/stdarch/crates/intrinsic-test/src/arm/json_parser.rs')
| -rw-r--r-- | library/stdarch/crates/intrinsic-test/src/arm/json_parser.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/library/stdarch/crates/intrinsic-test/src/arm/json_parser.rs b/library/stdarch/crates/intrinsic-test/src/arm/json_parser.rs index 58d366c86a9..56ec183bdd3 100644 --- a/library/stdarch/crates/intrinsic-test/src/arm/json_parser.rs +++ b/library/stdarch/crates/intrinsic-test/src/arm/json_parser.rs @@ -86,13 +86,16 @@ fn json_to_intrinsic( .into_iter() .enumerate() .map(|(i, arg)| { - let arg_name = Argument::<ArmIntrinsicType>::type_and_name_from_c(&arg).1; + let (type_name, arg_name) = Argument::<ArmIntrinsicType>::type_and_name_from_c(&arg); let metadata = intr.args_prep.as_mut(); let metadata = metadata.and_then(|a| a.remove(arg_name)); let arg_prep: Option<ArgPrep> = metadata.and_then(|a| a.try_into().ok()); let constraint: Option<Constraint> = arg_prep.and_then(|a| a.try_into().ok()); + let ty = ArmIntrinsicType::from_c(type_name, target) + .unwrap_or_else(|_| panic!("Failed to parse argument '{arg}'")); - let mut arg = Argument::<ArmIntrinsicType>::from_c(i, &arg, target, constraint); + let mut arg = + Argument::<ArmIntrinsicType>::new(i, String::from(arg_name), ty, constraint); // The JSON doesn't list immediates as const let IntrinsicType { |
