diff options
Diffstat (limited to 'library/stdarch/crates/intrinsic-test/src')
| -rw-r--r-- | library/stdarch/crates/intrinsic-test/src/arm/mod.rs | 6 | ||||
| -rw-r--r-- | library/stdarch/crates/intrinsic-test/src/common/mod.rs | 4 | ||||
| -rw-r--r-- | library/stdarch/crates/intrinsic-test/src/main.rs | 19 | 
3 files changed, 16 insertions, 13 deletions
| diff --git a/library/stdarch/crates/intrinsic-test/src/arm/mod.rs b/library/stdarch/crates/intrinsic-test/src/arm/mod.rs index 6a7c5d5a390..9bee5a1d7bf 100644 --- a/library/stdarch/crates/intrinsic-test/src/arm/mod.rs +++ b/library/stdarch/crates/intrinsic-test/src/arm/mod.rs @@ -21,7 +21,7 @@ pub struct ArmArchitectureTest { } impl SupportedArchitectureTest for ArmArchitectureTest { - fn create(cli_options: ProcessedCli) -> Self { + fn create(cli_options: ProcessedCli) -> Box<Self> { let a32 = cli_options.target.contains("v7"); let mut intrinsics = get_neon_intrinsics(&cli_options.filename, &cli_options.target) .expect("Error parsing input file"); @@ -43,10 +43,10 @@ impl SupportedArchitectureTest for ArmArchitectureTest { .collect::<Vec<_>>(); intrinsics.dedup(); - Self { + Box::new(Self { intrinsics: intrinsics, cli_options: cli_options, - } + }) } fn build_c_file(&self) -> bool { diff --git a/library/stdarch/crates/intrinsic-test/src/common/mod.rs b/library/stdarch/crates/intrinsic-test/src/common/mod.rs index ae44eb06b2d..606ab4fdf3b 100644 --- a/library/stdarch/crates/intrinsic-test/src/common/mod.rs +++ b/library/stdarch/crates/intrinsic-test/src/common/mod.rs @@ -16,7 +16,9 @@ pub mod values; /// Architectures must support this trait /// to be successfully tested. pub trait SupportedArchitectureTest { - fn create(cli_options: ProcessedCli) -> Self; + fn create(cli_options: ProcessedCli) -> Box<Self> + where + Self: Sized; fn build_c_file(&self) -> bool; fn build_rust_file(&self) -> bool; fn compare_outputs(&self) -> bool; diff --git a/library/stdarch/crates/intrinsic-test/src/main.rs b/library/stdarch/crates/intrinsic-test/src/main.rs index 0816c6c39c4..0e168a53f5d 100644 --- a/library/stdarch/crates/intrinsic-test/src/main.rs +++ b/library/stdarch/crates/intrinsic-test/src/main.rs @@ -14,15 +14,16 @@ fn main() { let args: Cli = clap::Parser::parse(); let processed_cli_options = ProcessedCli::new(args); - let test_environment_result = match processed_cli_options.target.as_str() { - "aarch64-unknown-linux-gnu" - | "armv7-unknown-linux-gnueabihf" - | "aarch64_be-unknown-linux-gnu" => { - Some(ArmArchitectureTest::create(processed_cli_options)) - } - - _ => None, - }; + let test_environment_result: Option<Box<dyn SupportedArchitectureTest>> = + match processed_cli_options.target.as_str() { + "aarch64-unknown-linux-gnu" + | "armv7-unknown-linux-gnueabihf" + | "aarch64_be-unknown-linux-gnu" => { + Some(ArmArchitectureTest::create(processed_cli_options)) + } + + _ => None, + }; if test_environment_result.is_none() { std::process::exit(0); | 
