diff options
| author | Robin Voetter <robin@voetter.nl> | 2021-10-24 20:37:09 +0200 |
|---|---|---|
| committer | Robin Voetter <robin@voetter.nl> | 2021-10-25 20:41:15 +0200 |
| commit | 7062c8a8865bbd2fb8181b579da552295cd68e6a (patch) | |
| tree | afa5a38081c75c63599a1642a78266b347b1b5fd /src | |
| parent | 0942bf73c90eabf87d0ca965b50beb0fd9a8fc8c (diff) | |
| download | zig-7062c8a8865bbd2fb8181b579da552295cd68e6a.tar.gz zig-7062c8a8865bbd2fb8181b579da552295cd68e6a.zip | |
stage2: comptime slice of pointer to hardcoded address
Diffstat (limited to 'src')
| -rw-r--r-- | src/Sema.zig | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index d290ea8ec0..eaa99a42a7 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -8001,7 +8001,12 @@ fn analyzePtrArithmetic( const offset_int = offset_val.toUnsignedInt(); if (ptr_val.getUnsignedInt()) |addr| { const target = sema.mod.getTarget(); - const elem_ty = ptr_ty.childType(); + const ptr_child_ty = ptr_ty.childType(); + const elem_ty = if (ptr_ty.isSinglePointer() and ptr_child_ty.zigTypeTag() == .Array) + ptr_child_ty.childType() + else + ptr_child_ty; + const elem_size = elem_ty.abiSize(target); const new_addr = switch (air_tag) { .ptr_add => addr + elem_size * offset_int, |
