]> git.lizzy.rs Git - rust.git/commitdiff
Fix EFIABI test
authorroblabla <unfiltered@roblab.la>
Fri, 25 Oct 2019 14:44:21 +0000 (14:44 +0000)
committerroblabla <unfiltered@roblab.la>
Fri, 25 Oct 2019 16:04:20 +0000 (16:04 +0000)
Use revisions to run the EFIABI in multiple configurations, compiling
for each supported UEFI platform, and checking the ABI generated in the
LLVM IR is correct.

Use no_core to make it easier to test.

src/test/codegen/abi-efiapi.rs

index 471f572375abc0d2ccc79a004cbd3dab3d7eb195..cfd31ef1a31fdab6b2f8e249362927270386f13a 100644 (file)
@@ -1,20 +1,29 @@
 // Checks if the correct annotation for the efiapi ABI is passed to llvm.
 
+// revisions:x86_64 i686 aarch64 arm riscv
+
+//[x86_64] compile-flags: --target x86_64-unknown-uefi
+//[i686] compile-flags: --target i686-unknown-linux-musl
+//[aarch64] compile-flags: --target aarch64-unknown-none
+//[arm] compile-flags: --target armv7r-none-eabi
+//[riscv] compile-flags: --target riscv64gc-unknown-none-elf
 // compile-flags: -C no-prepopulate-passes
 
 #![crate_type = "lib"]
-#![feature(abi_efiapi)]
+#![feature(no_core, lang_items, abi_efiapi)]
+#![no_core]
 
-// CHECK: define win64 i64 @has_efiapi
-#[no_mangle]
-#[cfg(target_arch = "x86_64")]
-pub extern "efiapi" fn has_efiapi(a: i64) -> i64 {
-    a * 2
-}
+#[lang="sized"]
+trait Sized { }
+#[lang="freeze"]
+trait Freeze { }
+#[lang="copy"]
+trait Copy { }
 
-// CHECK: define c i64 @has_efiapi
+//x86_64: define win64cc void @has_efiapi
+//i686: define void @has_efiapi
+//aarch64: define void @has_efiapi
+//arm: define void @has_efiapi
+//riscv: define void @has_efiapi
 #[no_mangle]
-#[cfg(not(target_arch = "x86_64"))]
-pub extern "efiapi" fn has_efiapi(a: i64) -> i64 {
-    a * 2
-}
+pub extern "efiapi" fn has_efiapi() {}