diff options
| author | mlugg <mlugg@mlugg.co.uk> | 2024-03-26 05:38:32 +0000 |
|---|---|---|
| committer | mlugg <mlugg@mlugg.co.uk> | 2024-03-26 13:48:07 +0000 |
| commit | a61def10c66abc871f92c84d9cef85b6b7752cbf (patch) | |
| tree | 6d8dfdbad1cbaf827d52ec61c33fff0d6ddae86d /src/Value.zig | |
| parent | b8d114a29e341a0cbd4c22cf02cb1588b0154446 (diff) | |
| download | zig-a61def10c66abc871f92c84d9cef85b6b7752cbf.tar.gz zig-a61def10c66abc871f92c84d9cef85b6b7752cbf.zip | |
compiler: eliminate most usages of TypedValue
Diffstat (limited to 'src/Value.zig')
| -rw-r--r-- | src/Value.zig | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/Value.zig b/src/Value.zig index 290f38d117..81b8583a84 100644 --- a/src/Value.zig +++ b/src/Value.zig @@ -249,12 +249,12 @@ pub fn getUnsignedIntAdvanced(val: Value, mod: *Module, opt_sema: ?*Sema) !?u64 .int => |int| Value.fromInterned(int).getUnsignedIntAdvanced(mod, opt_sema), .elem => |elem| { const base_addr = (try Value.fromInterned(elem.base).getUnsignedIntAdvanced(mod, opt_sema)) orelse return null; - const elem_ty = Type.fromInterned(mod.intern_pool.typeOf(elem.base)).elemType2(mod); + const elem_ty = Value.fromInterned(elem.base).typeOf(mod).elemType2(mod); return base_addr + elem.index * elem_ty.abiSize(mod); }, .field => |field| { const base_addr = (try Value.fromInterned(field.base).getUnsignedIntAdvanced(mod, opt_sema)) orelse return null; - const struct_ty = Type.fromInterned(mod.intern_pool.typeOf(field.base)).childType(mod); + const struct_ty = Value.fromInterned(field.base).typeOf(mod).childType(mod); if (opt_sema) |sema| try sema.resolveTypeLayout(struct_ty); return base_addr + struct_ty.structFieldOffset(@as(usize, @intCast(field.index)), mod); }, @@ -1390,7 +1390,7 @@ pub fn elemPtr( }; switch (mod.intern_pool.indexToKey(ptr_val.toIntern())) { .ptr => |ptr| switch (ptr.addr) { - .elem => |elem| if (Type.fromInterned(mod.intern_pool.typeOf(elem.base)).elemType2(mod).eql(elem_ty, mod)) + .elem => |elem| if (Value.fromInterned(elem.base).typeOf(mod).elemType2(mod).eql(elem_ty, mod)) return Value.fromInterned((try mod.intern(.{ .ptr = .{ .ty = elem_ptr_ty.toIntern(), .addr = .{ .elem = .{ |
