authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-02-10 23:03:13-07:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-02-12 11:18:23+01:00
logd72f832b1ebab0db106e64bc9f59eba90c414311
tree89716f3ddbd8f2ed0e2ce65938b0ac93a50f9b23
parent335c680cde670776280c3a812adb64abd1311d97

LLVM backend: call constPtrToInt instead of constBitCast

when appropriate. Avoids tripping an LLVM assertion.

1 files changed, 5 insertions(+), 1 deletions(-)

src/codegen/llvm.zig+5-1
...@@ -1858,7 +1858,11 @@ pub const DeclGen = struct {...@@ -1858,7 +1858,11 @@ pub const DeclGen = struct {
1858 try self.resolveGlobalDecl(decl);1858 try self.resolveGlobalDecl(decl);
18591859
1860 const llvm_type = try self.llvmType(tv.ty);1860 const llvm_type = try self.llvmType(tv.ty);
1861 return llvm_val.constBitCast(llvm_type);1861 if (tv.ty.zigTypeTag() == .Int) {
1862 return llvm_val.constPtrToInt(llvm_type);
1863 } else {
1864 return llvm_val.constBitCast(llvm_type);
1865 }
1862 }1866 }
18631867
1864 fn lowerPtrToVoid(dg: *DeclGen, ptr_ty: Type) !*const llvm.Value {1868 fn lowerPtrToVoid(dg: *DeclGen, ptr_ty: Type) !*const llvm.Value {