@@ -33,6 +33,16 @@ use minicore::*;
3333//
3434// ZERO/SIGN-EXTENDING TO 32 BITS NON-EXTENDING
3535// ============================== =======================
36+ // x86_64: void @c_arg_bool(i1 zeroext %_a)
37+ // i686: void @c_arg_bool(i1 zeroext %_a)
38+ // aarch64-apple: void @c_arg_bool(i1 zeroext %_a)
39+ // aarch64-windows: void @c_arg_bool(i1 %_a)
40+ // aarch64-linux: void @c_arg_bool(i1 %_a)
41+ // arm: void @c_arg_bool(i1 zeroext %_a)
42+ // riscv: void @c_arg_bool(i1 zeroext %_a)
43+ #[ no_mangle]
44+ pub extern "C" fn c_arg_bool ( _a : bool ) { }
45+
3646// x86_64: void @c_arg_u8(i8 zeroext %_a)
3747// i686: void @c_arg_u8(i8 zeroext %_a)
3848// aarch64-apple: void @c_arg_u8(i8 zeroext %_a)
@@ -113,6 +123,18 @@ pub extern "C" fn c_arg_i32(_a: i32) {}
113123#[ no_mangle]
114124pub extern "C" fn c_arg_i64 ( _a : i64 ) { }
115125
126+ // x86_64: zeroext i1 @c_ret_bool()
127+ // i686: zeroext i1 @c_ret_bool()
128+ // aarch64-apple: zeroext i1 @c_ret_bool()
129+ // aarch64-windows: i1 @c_ret_bool()
130+ // aarch64-linux: i1 @c_ret_bool()
131+ // arm: zeroext i1 @c_ret_bool()
132+ // riscv: zeroext i1 @c_ret_bool()
133+ #[ no_mangle]
134+ pub extern "C" fn c_ret_bool ( ) -> bool {
135+ false
136+ }
137+
116138// x86_64: zeroext i8 @c_ret_u8()
117139// i686: zeroext i8 @c_ret_u8()
118140// aarch64-apple: zeroext i8 @c_ret_u8()
@@ -210,10 +232,13 @@ pub extern "C" fn c_ret_i64() -> i64 {
210232}
211233
212234const C_SOURCE_FILE : & ' static str = r##"
235+ #include <stdbool.h>
213236#include <stdlib.h>
214237#include <stdint.h>
215238#include <stdio.h>
216239
240+ void c_arg_bool(bool _a) { }
241+
217242void c_arg_u8(uint8_t _a) { }
218243void c_arg_u16(uint16_t _a) { }
219244void c_arg_u32(uint32_t _a) { }
@@ -224,6 +249,8 @@ void c_arg_i16(int16_t _a) { }
224249void c_arg_i32(int32_t _a) { }
225250void c_arg_i64(int64_t _a) { }
226251
252+ bool c_ret_bool() { return false; }
253+
227254uint8_t c_ret_u8() { return 0; }
228255uint16_t c_ret_u16() { return 0; }
229256uint32_t c_ret_u32() { return 0; }
0 commit comments