From 236032b8889f11687bb6744eb0c62ae7c5f6fbf7 Mon Sep 17 00:00:00 2001 From: lyken Date: Wed, 28 Aug 2024 13:02:03 +0800 Subject: [PATCH] Ptr instance offset_const can be negative + use i64_type() --- nac3core/src/codegen/model/ptr.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nac3core/src/codegen/model/ptr.rs b/nac3core/src/codegen/model/ptr.rs index baff1497..5574aad8 100644 --- a/nac3core/src/codegen/model/ptr.rs +++ b/nac3core/src/codegen/model/ptr.rs @@ -123,9 +123,9 @@ impl<'ctx, Item: Model<'ctx>> Instance<'ctx, Ptr> { pub fn offset_const( &self, ctx: &CodeGenContext<'ctx, '_>, - offset: u64, + offset: i64, ) -> Instance<'ctx, Ptr> { - let offset = ctx.ctx.i32_type().const_int(offset, false); + let offset = ctx.ctx.i64_type().const_int(offset as u64, true); self.offset(ctx, offset) } @@ -141,7 +141,7 @@ impl<'ctx, Item: Model<'ctx>> Instance<'ctx, Ptr> { pub fn set_index_const( &self, ctx: &CodeGenContext<'ctx, '_>, - index: u64, + index: i64, value: Instance<'ctx, Item>, ) { self.offset_const(ctx, index).store(ctx, value); @@ -160,7 +160,7 @@ impl<'ctx, Item: Model<'ctx>> Instance<'ctx, Ptr> { &self, generator: &mut G, ctx: &CodeGenContext<'ctx, '_>, - index: u64, + index: i64, ) -> Instance<'ctx, Item> { self.offset_const(ctx, index).load(generator, ctx) }