aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/llvm
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-07-28 19:27:43 -0700
committerGitHub <noreply@github.com>2023-07-28 19:27:43 -0700
commitbde6e075dfc202fdcfa21ec9c2d90941460b002e (patch)
treefa782eaf75c76e5d7ab09ce6af58061c8e688df4 /src/codegen/llvm
parent423c1221f9c020a1047fc14ce8e9003d7e009914 (diff)
parent97ae2d2c29f827ebb73abbc0317cd39ac4ca4c9b (diff)
downloadzig-bde6e075dfc202fdcfa21ec9c2d90941460b002e.tar.gz
zig-bde6e075dfc202fdcfa21ec9c2d90941460b002e.zip
Merge pull request #16593 from jacobly0/c-abi
Fix various C ABI issues
Diffstat (limited to 'src/codegen/llvm')
-rw-r--r--src/codegen/llvm/Builder.zig4
-rw-r--r--src/codegen/llvm/bindings.zig3
2 files changed, 6 insertions, 1 deletions
diff --git a/src/codegen/llvm/Builder.zig b/src/codegen/llvm/Builder.zig
index 3e6cf31d69..cd7a0045aa 100644
--- a/src/codegen/llvm/Builder.zig
+++ b/src/codegen/llvm/Builder.zig
@@ -572,7 +572,9 @@ pub const Type = enum(u32) {
pub fn isSized(self: Type, builder: *const Builder) Allocator.Error!bool {
var visited: IsSizedVisited = .{};
- return self.isSizedVisited(&visited, builder);
+ const result = try self.isSizedVisited(&visited, builder);
+ if (builder.useLibLlvm()) assert(result == self.toLlvm(builder).isSized().toBool());
+ return result;
}
const FormatData = struct {
diff --git a/src/codegen/llvm/bindings.zig b/src/codegen/llvm/bindings.zig
index aee9cea384..2fab61d1cf 100644
--- a/src/codegen/llvm/bindings.zig
+++ b/src/codegen/llvm/bindings.zig
@@ -434,6 +434,9 @@ pub const Type = opaque {
Packed: Bool,
) void;
+ pub const isSized = LLVMTypeIsSized;
+ extern fn LLVMTypeIsSized(Ty: *Type) Bool;
+
pub const constGEP = LLVMConstGEP2;
extern fn LLVMConstGEP2(
Ty: *Type,