aboutsummaryrefslogtreecommitdiff
path: root/test/c_abi
AgeCommit message (Collapse)Author
13 daystest: fix up c3ee8078b475e74772ad8a05f13869ce1a2c1128Alex Rønne Petersen
Oops, accidentally didn't run the tests for 32-bit powerpc.
13 daystest: skip some C ABI vector tests on powerpcAlex Rønne Petersen
These fail on a pwr10 machine.
2025-11-27x86_64: fix abi of a struct that partially fits in registersJacob Young
Closes #26035
2025-11-21test: disable `big simd vector` C ABI test on s390xAlex Rønne Petersen
2025-11-19test: disable a bunch of failing C ABI tests on s390xAlex Rønne Petersen
2025-11-19test: disable C ABI tests using i128 on s390x due to an LLVM crashAlex Rønne Petersen
https://github.com/llvm/llvm-project/issues/168460
2025-11-14represent Mac Catalyst as aarch64-maccatalyst-none rather than ↵Alex Rønne Petersen
aarch64-ios-macabi Apple's own headers and tbd files prefer to think of Mac Catalyst as a distinct OS target. Earlier, when DriverKit support was added to LLVM, it was represented a distinct OS. So why Apple decided to only represent Mac Catalyst as an ABI in the target triple is beyond me. But this isn't the first time they've ignored established target triple norms (see: armv7k and aarch64_32) and it probably won't be the last. While doing this, I also audited all Darwin OS prongs throughout the codebase and made sure they cover all the tags.
2025-09-18test: disable some SIMD ABI tests on LoongArchAlex Rønne Petersen
2025-08-30test: expand C ABI test coverage to hexagon-linux-muslAlex Rønne Petersen
2025-07-11Remove numerous things deprecated during the 0.14 release cycleLinus Groh
Basically everything that has a direct replacement or no uses left. Notable omissions: - std.ArrayHashMap: Too much fallout, needs a separate cleanup. - std.debug.runtime_safety: Too much fallout. - std.heap.GeneralPurposeAllocator: Lots of references to it remain, not a simple find and replace as "debug allocator" is not equivalent to "general purpose allocator". - std.io.Reader: Is being reworked at the moment. - std.unicode.utf8Decode(): No replacement, needs a new API first. - Manifest backwards compat options: Removal would break test data used by TestFetchBuilder. - panic handler needs to be a namespace: Many tests still rely on it being a function, needs a separate cleanup.
2025-06-05test: Expand target coverage for C ABI tests.Alex Rønne Petersen
2025-06-05std.Target: Introduce Cpu convenience functions for feature tests.Alex Rønne Petersen
Before: * std.Target.arm.featureSetHas(target.cpu.features, .has_v7) * std.Target.x86.featureSetHasAny(target.cpu.features, .{ .sse, .avx, .cmov }) * std.Target.wasm.featureSetHasAll(target.cpu.features, .{ .atomics, .bulk_memory }) After: * target.cpu.has(.arm, .has_v7) * target.cpu.hasAny(.x86, &.{ .sse, .avx, .cmov }) * target.cpu.hasAll(.wasm, &.{ .atomics, .bulk_memory })
2025-05-01wasm-c-abi: llvm fix struct handling + reorganizePavel Verigo
I changed to `wasm/abi.zig`, this design is certainly better than the previous one. Still there is some conflict of interest between llvm and self-hosted backend, better design will appear when abi tests will be tested with self-hosted. Resolves: #23304 Resolves: #23305
2025-03-05Remove uses of deprecated callconv aliasesLinus Groh
2025-02-17std.Target: Remove functions that just wrap component functions.Alex Rønne Petersen
Functions like isMinGW() and isGnuLibC() have a good reason to exist: They look at multiple components of the target. But functions like isWasm(), isDarwin(), isGnu(), etc only exist to save 4-8 characters. I don't think this is a good enough reason to keep them, especially given that: * It's not immediately obvious to a reader whether target.isDarwin() means the same thing as target.os.tag.isDarwin() precisely because isMinGW() and similar functions *do* look at multiple components. * It's not clear where we would draw the line. The logical conclusion before this commit would be to also wrap Arch.isX86(), Os.Tag.isSolarish(), Abi.isOpenHarmony(), etc... this obviously quickly gets out of hand. * It's nice to just have a single correct way of doing something.
2024-11-03std.Target: Replace isARM() with isArmOrThumb() and rename it to isArm().Alex Rønne Petersen
The old isARM() function was a portability trap. With the name it had, it seemed like the obviously correct function to use, but it didn't include Thumb. In the vast majority of cases where someone wants to ask "is the target Arm?", Thumb *should* be included. There are exactly 3 cases in the codebase where we do actually need to exclude Thumb, although one of those is in Aro and mirrors a check in Clang that is itself likely a bug. These rare cases can just add an extra isThumb() check.
2024-09-07mips: fix C ABI compatibilityMaciej 'vesim' Kuliński
2024-08-01std.Target: Rework isPPC()/isPPC64() functions.Alex Rønne Petersen
* Rename isPPC() -> isPowerPC32(). * Rename isPPC64() -> isPowerPC64(). * Add new isPowerPC() function which covers both. There was confusion even in the standard library about what isPPC() meant. This change makes these functions work how I think most people actually expect them to work, and makes them consistent with isMIPS(), isSPARC(), etc. I chose to rename from PPC to PowerPC because 1) it's more consistent with the other functions, and 2) it'll cause loud rather than silent breakage for anyone who might have been depending on isPPC() while misunderstanding it.
2024-05-08x86_64: fix C abi of incomplete sse registerJacob Young
2024-04-22x86_64: fix C abi for unionsJacob Young
Closes #19721
2024-04-06x86_64: fix abi of nested structsJacob Young
2024-02-27Merge pull request #18538 from Pangoraw/wasm_vector_abiLuuk de Gram
wasm: allow non-int vectors
2024-02-20llvm: fix c abi for structs not passed in registersJacob Young
Closes #18916
2024-02-15c_abi: add vector tests for floatsPaul Berg
2024-02-15wasm: enable bool vectors tests for stage2_llvmPaul Berg
2024-02-12x86_64: implement c abi for bool vectorsJacob Young
2024-01-03Correct expected/actual parameter order of some assertionsCarl Åstholm
2024-01-03Fix compile errors from the `expectEqual` changeCarl Åstholm
2023-11-19test: update remaining code to fix 'var is never mutated' errorsmlugg
2023-10-27x86_64: fix c abi test failuresJacob Young
2023-10-26test: enable `c-abi-tests` for the x86_64 backendJacob Young
Add testing for `x86_64_v2` and `x86_64_v3` with the x86_64 backend.
2023-07-28c-abi: enable passing testsJacob Young
2023-07-28llvm: fix SysV C abi for structs smaller than two eightbytesJacob Young
Closes #16038 Closes #16288
2023-07-27LLVM: always add argument attributes to callsAndrew Kelley
These are needed for correctness. There's no reason to only add them for function pointers. closes #16290
2023-07-26llvm: disable LTO on C ABI testsAndrew Kelley
This required disabling some failing tests. See #14908
2023-06-24all: migrate code to new cast builtin syntaxmlugg
Most of this migration was performed automatically with `zig fmt`. There were a few exceptions which I had to manually fix: * `@alignCast` and `@addrSpaceCast` cannot be automatically rewritten * `@truncate`'s fixup is incorrect for vectors * Test cases are not formatted, and their error locations change
2023-06-19all: zig fmt and rename "@XToY" to "@YFromX"Eric Joldasov
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2023-01-22llvm: implement explicit Win64 and SysV calling conventionsVeikka Tuominen
2023-01-20Merge pull request #14357 from kcbanner/llvm_byval_structVeikka Tuominen
llvm: implement Stdcall calling convention
2023-01-19llvm: implement Stdcall return typesVeikka Tuominen
2023-01-19llvm: pass non-scalars as byref in .Stdcallkcbanner
- add c_abi tests for .Stdcall - enable (x86|x86_64)-windows-gnu in the c_abi tests
2023-01-17windows x86_64 C ABI: pass byref structs as byref_mutVeikka Tuominen
2023-01-14llvm: correctly handle C ABI structs with f32/f64 alignment differencesVeikka Tuominen
Closes #13830
2023-01-14add C ABI tests for exotic float typesVeikka Tuominen
2023-01-14also run C ABI tests with -OReleaseFastVeikka Tuominen
2022-12-20llvm: fix C ABI for <=256 bit vectorsVeikka Tuominen
Closes #13918
2022-11-23llvm: fix x86_64 sysV ABI of big vectors on avx512 enabled CPUsVeikka Tuominen
Closes #13629
2022-11-22disable failing C ABI testAndrew Kelley
see tracking issue #13629
2022-11-20llvm: add attributes to the arguments of function pointer callsVeikka Tuominen
Closes #13605
2022-11-20llvm: aarch64 C ABI: pass byref params as mutable pointersVeikka Tuominen
Closes #13597