authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-05-02 00:29:39-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-05-03 04:25:14-04:00
logf56f5af4039aadd5f9377eb2663e4733c37fabc5
tree74bd2e4373e04d051e533c58b4ffc7a189be338a
parent8d6336420b937075e3363f9548adb0092af7f819

x86_64: fix global slices


5 files changed, 7 insertions(+), 15 deletions(-)

src/codegen.zig+7-5
...@@ -1156,11 +1156,13 @@ pub fn genTypedValue(...@@ -1156,11 +1156,13 @@ pub fn genTypedValue(
1156 const target = bin_file.options.target;1156 const target = bin_file.options.target;
1157 const ptr_bits = target.cpu.arch.ptrBitWidth();1157 const ptr_bits = target.cpu.arch.ptrBitWidth();
11581158
1159 if (typed_value.val.castTag(.decl_ref)) |payload| {1159 if (!typed_value.ty.isSlice()) {
1160 return genDeclRef(bin_file, src_loc, typed_value, payload.data);1160 if (typed_value.val.castTag(.decl_ref)) |payload| {
1161 }1161 return genDeclRef(bin_file, src_loc, typed_value, payload.data);
1162 if (typed_value.val.castTag(.decl_ref_mut)) |payload| {1162 }
1163 return genDeclRef(bin_file, src_loc, typed_value, payload.data.decl_index);1163 if (typed_value.val.castTag(.decl_ref_mut)) |payload| {
1164 return genDeclRef(bin_file, src_loc, typed_value, payload.data.decl_index);
1165 }
1164 }1166 }
11651167
1166 switch (typed_value.ty.zigTypeTag()) {1168 switch (typed_value.ty.zigTypeTag()) {
test/behavior/cast.zig-4
...@@ -688,7 +688,6 @@ test "peer cast: error set any anyerror" {...@@ -688,7 +688,6 @@ test "peer cast: error set any anyerror" {
688}688}
689689
690test "peer type resolution: error set supersets" {690test "peer type resolution: error set supersets" {
691 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
692 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO691 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
693 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO692 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
694 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO693 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -718,7 +717,6 @@ test "peer type resolution: error set supersets" {...@@ -718,7 +717,6 @@ test "peer type resolution: error set supersets" {
718}717}
719718
720test "peer type resolution: disjoint error sets" {719test "peer type resolution: disjoint error sets" {
721 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
722 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO720 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
723 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO721 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
724 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO722 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -748,7 +746,6 @@ test "peer type resolution: disjoint error sets" {...@@ -748,7 +746,6 @@ test "peer type resolution: disjoint error sets" {
748}746}
749747
750test "peer type resolution: error union and error set" {748test "peer type resolution: error union and error set" {
751 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
752 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO749 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
753 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO750 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
754 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO751 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -782,7 +779,6 @@ test "peer type resolution: error union and error set" {...@@ -782,7 +779,6 @@ test "peer type resolution: error union and error set" {
782}779}
783780
784test "peer type resolution: error union after non-error" {781test "peer type resolution: error union after non-error" {
785 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
786 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO782 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
787 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO783 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
788 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO784 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
test/behavior/generics.zig-1
...@@ -250,7 +250,6 @@ test "function parameter is generic" {...@@ -250,7 +250,6 @@ test "function parameter is generic" {
250}250}
251251
252test "generic function instantiation turns into comptime call" {252test "generic function instantiation turns into comptime call" {
253 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
254 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO253 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
255 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO254 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
256 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO255 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
test/behavior/src.zig-1
...@@ -14,7 +14,6 @@ const builtin = @import("builtin");...@@ -14,7 +14,6 @@ const builtin = @import("builtin");
14const expect = std.testing.expect;14const expect = std.testing.expect;
1515
16test "@src" {16test "@src" {
17 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
18 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO17 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
19 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO18 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
20 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO19 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/type_info.zig-4
...@@ -159,7 +159,6 @@ fn testArray() !void {...@@ -159,7 +159,6 @@ fn testArray() !void {
159test "type info: error set, error union info, anyerror" {159test "type info: error set, error union info, anyerror" {
160 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;160 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
161 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO161 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
162 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
163 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO162 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
164163
165 try testErrorSet();164 try testErrorSet();
...@@ -191,7 +190,6 @@ fn testErrorSet() !void {...@@ -191,7 +190,6 @@ fn testErrorSet() !void {
191test "type info: error set single value" {190test "type info: error set single value" {
192 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;191 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
193 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO192 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
194 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
195 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO193 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
196194
197 const TestSet = error.One;195 const TestSet = error.One;
...@@ -205,7 +203,6 @@ test "type info: error set single value" {...@@ -205,7 +203,6 @@ test "type info: error set single value" {
205test "type info: error set merged" {203test "type info: error set merged" {
206 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;204 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
207 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO205 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
208 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
209 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO206 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
210207
211 const TestSet = error{ One, Two } || error{Three};208 const TestSet = error{ One, Two } || error{Three};
...@@ -219,7 +216,6 @@ test "type info: error set merged" {...@@ -219,7 +216,6 @@ test "type info: error set merged" {
219}216}
220217
221test "type info: enum info" {218test "type info: enum info" {
222 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
223 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;219 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
224 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;220 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
225 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO221 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO