Skip to content

Commit 98cf81d

Browse files
committed
test: Expand target coverage for C ABI tests.
1 parent adc4418 commit 98cf81d

File tree

3 files changed

+396
-123
lines changed

3 files changed

+396
-123
lines changed

test/c_abi/cfuncs.c

Lines changed: 53 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ static void assert_or_panic(bool ok) {
3737
# define ZIG_NO_I128
3838
#endif
3939

40+
#ifdef __hexagon__
41+
# define ZIG_NO_I128
42+
#endif
43+
4044
#ifdef __mips__
4145
# define ZIG_NO_I128
4246
#endif
@@ -77,6 +81,14 @@ static void assert_or_panic(bool ok) {
7781
#define ZIG_NO_RAW_F16
7882
#endif
7983

84+
#ifdef __hexagon__
85+
#define ZIG_NO_RAW_F16
86+
#endif
87+
88+
#ifdef __loongarch__
89+
#define ZIG_NO_RAW_F16
90+
#endif
91+
8092
#ifdef __mips__
8193
#define ZIG_NO_RAW_F16
8294
#endif
@@ -85,6 +97,10 @@ static void assert_or_panic(bool ok) {
8597
#define ZIG_NO_RAW_F16
8698
#endif
8799

100+
#ifdef __s390x__
101+
#define ZIG_NO_RAW_F16
102+
#endif
103+
88104
#ifdef __wasm__
89105
#define ZIG_NO_RAW_F16
90106
#endif
@@ -101,6 +117,14 @@ static void assert_or_panic(bool ok) {
101117
#define ZIG_NO_F128
102118
#endif
103119

120+
#ifdef __hexagon__
121+
#define ZIG_NO_F128
122+
#endif
123+
124+
#ifdef __loongarch__
125+
#define ZIG_NO_F128
126+
#endif
127+
104128
#ifdef __mips__
105129
#define ZIG_NO_F128
106130
#endif
@@ -113,6 +137,10 @@ static void assert_or_panic(bool ok) {
113137
#define ZIG_NO_F128
114138
#endif
115139

140+
#ifdef __s390x__
141+
#define ZIG_NO_F128
142+
#endif
143+
116144
#ifdef __APPLE__
117145
#define ZIG_NO_F128
118146
#endif
@@ -2713,18 +2741,24 @@ void run_c_tests(void) {
27132741
}
27142742

27152743
#if !defined(ZIG_RISCV64)
2744+
#if !defined(__mips64__)
27162745
{
27172746
struct Struct_f32 s = zig_ret_struct_f32();
27182747
assert_or_panic(s.a == 2.5f);
27192748
zig_struct_f32((struct Struct_f32){ 2.5f });
27202749
}
2750+
#endif
27212751

2752+
#if !(defined(__arm__) && defined(__SOFTFP__))
2753+
#if !defined(ZIG_RISCV32)
27222754
{
27232755
struct Struct_f64 s = zig_ret_struct_f64();
27242756
assert_or_panic(s.a == 2.5);
27252757
zig_struct_f64((struct Struct_f64){ 2.5 });
27262758
}
2759+
#endif
27272760

2761+
#if !defined(__loongarch__) && !defined(__mips64__)
27282762
{
27292763
struct Struct_f32f32_f32 s = zig_ret_struct_f32f32_f32();
27302764
assert_or_panic(s.a.b == 1.0f);
@@ -2741,37 +2775,44 @@ void run_c_tests(void) {
27412775
zig_struct_f32_f32f32((struct Struct_f32_f32f32){ 1.0f, { 2.0f, 3.0f } });
27422776
}
27432777
#endif
2778+
#endif
2779+
#endif
27442780

2745-
#if !defined(__powerpc__)
2781+
#if !defined(__powerpc__) && !defined(__loongarch__) && !defined(__mips64__)
27462782
{
27472783
struct Struct_u32_Union_u32_u32u32 s = zig_ret_struct_u32_union_u32_u32u32();
27482784
assert_or_panic(s.a == 1);
27492785
assert_or_panic(s.b.c.d == 2);
27502786
assert_or_panic(s.b.c.e == 3);
27512787
zig_struct_u32_union_u32_u32u32(s);
27522788
}
2789+
27532790
{
27542791
struct Struct_i32_i32 s = {1, 2};
27552792
zig_struct_i32_i32(s);
27562793
}
27572794
#endif
27582795

2796+
#if !defined(__powerpc64__) && !defined(__loongarch__) && !defined(__mips64__)
27592797
{
27602798
struct BigStruct s = {1, 2, 3, 4, 5};
27612799
zig_big_struct(s);
27622800
}
27632801
#endif
2802+
#endif
27642803

27652804
#if !defined __i386__ && !defined __arm__ && !defined __aarch64__ && \
2766-
!defined __powerpc__ && !defined ZIG_RISCV64
2805+
!defined __powerpc__ && !defined ZIG_RISCV64 && !defined(__loongarch__) && \
2806+
!defined(__mips64__)
27672807
{
27682808
struct SmallStructInts s = {1, 2, 3, 4};
27692809
zig_small_struct_ints(s);
27702810
}
27712811
#endif
27722812

27732813
#if !defined __arm__ && !defined __aarch64__ && \
2774-
!defined __powerpc__ && !defined ZIG_RISCV64
2814+
!defined __powerpc__ && !defined ZIG_RISCV64 && !defined(__loongarch__) && \
2815+
!defined(__mips64__)
27752816
{
27762817
struct MedStructInts s = {1, 2, 3};
27772818
zig_med_struct_ints(s);
@@ -2797,29 +2838,32 @@ void run_c_tests(void) {
27972838
}
27982839

27992840
#if !defined __i386__ && !defined __arm__ && \
2800-
!defined ZIG_PPC32 && !defined _ARCH_PPC64
2841+
!defined ZIG_PPC32 && !defined _ARCH_PPC64 && !defined(__loongarch__) && \
2842+
!defined(__mips64__)
28012843
{
28022844
struct SplitStructInts s = {1234, 100, 1337};
28032845
zig_split_struct_ints(s);
28042846
}
28052847
#endif
28062848

2807-
#if !defined __arm__ && !defined ZIG_PPC32 && !defined _ARCH_PPC64
2849+
#if !defined __arm__ && !defined ZIG_PPC32 && !defined _ARCH_PPC64 && !defined(__loongarch__) && \
2850+
!defined(__mips64__)
28082851
{
28092852
struct MedStructMixed s = {1234, 100.0f, 1337.0f};
28102853
zig_med_struct_mixed(s);
28112854
}
28122855
#endif
28132856

28142857
#if !defined __i386__ && !defined __arm__ && \
2815-
!defined ZIG_PPC32 && !defined _ARCH_PPC64
2858+
!defined ZIG_PPC32 && !defined _ARCH_PPC64 && !defined(__loongarch__) && \
2859+
!defined(__mips64__)
28162860
{
28172861
struct SplitStructMixed s = {1234, 100, 1337.0f};
28182862
zig_split_struct_mixed(s);
28192863
}
28202864
#endif
28212865

2822-
#if !defined ZIG_PPC32
2866+
#if !defined(__powerpc__) && !defined(__loongarch__) && !defined(__mips64__)
28232867
{
28242868
struct BigStruct s = {30, 31, 32, 33, 34};
28252869
struct BigStruct res = zig_big_struct_both(s);
@@ -2831,15 +2875,15 @@ void run_c_tests(void) {
28312875
}
28322876
#endif
28332877

2834-
#if !defined ZIG_PPC32 && !defined _ARCH_PPC64
2878+
#if !defined ZIG_PPC32 && !defined _ARCH_PPC64 && !defined(__loongarch__) && !defined(__mips64__)
28352879
{
28362880
struct Rect r1 = {1, 21, 16, 4};
28372881
struct Rect r2 = {178, 189, 21, 15};
28382882
zig_multiple_struct_ints(r1, r2);
28392883
}
28402884
#endif
28412885

2842-
#if !defined ZIG_PPC32
2886+
#if !defined ZIG_PPC32 && !defined(__loongarch__) && !defined(__mips64__)
28432887
{
28442888
struct FloatRect r1 = {1, 21, 16, 4};
28452889
struct FloatRect r2 = {178, 189, 21, 15};

0 commit comments

Comments
 (0)