authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-03-03 17:55:55-05:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2022-03-03 17:55:55-05:00
log6c045f9e83434e98fbfbd7c511e673274cb22afc
tree35ba6d6b69a3df9f661ba64202f31e0d8b1b6e5f
parent3605dd307ffff74726cc0ce5099599f1a6f9ddb2
parentaa7cbca7d37bb2cd7794ffa401193cdc3f5f9849
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

Merge pull request #11047 from Vexu/stage2

Stage2: make `expectEqualSlices` work

5 files changed, 75 insertions(+), 60 deletions(-)

src/Sema.zig+59-49
......@@ -153,6 +153,7 @@ pub const Block = struct {
153153 pub const Inlining = struct {
154154 comptime_result: Air.Inst.Ref,
155155 merges: Merges,
156 err: ?*Module.ErrorMsg = null,
156157 };
157158
158159 pub const Merges = struct {
......@@ -1429,10 +1430,10 @@ pub fn fail(
14291430 args: anytype,
14301431) CompileError {
14311432 const err_msg = try sema.errMsg(block, src, format, args);
1432 return sema.failWithOwnedErrorMsg(err_msg);
1433 return sema.failWithOwnedErrorMsg(block, err_msg);
14331434}
14341435
1435fn failWithOwnedErrorMsg(sema: *Sema, err_msg: *Module.ErrorMsg) CompileError {
1436fn failWithOwnedErrorMsg(sema: *Sema, block: *Block, err_msg: *Module.ErrorMsg) CompileError {
14361437 @setCold(true);
14371438
14381439 if (crash_report.is_enabled and sema.mod.comp.debug_compile_errors) {
......@@ -1445,6 +1446,7 @@ fn failWithOwnedErrorMsg(sema: *Sema, err_msg: *Module.ErrorMsg) CompileError {
14451446 }
14461447
14471448 const mod = sema.mod;
1449 if (block.inlining) |some| some.err = err_msg;
14481450
14491451 {
14501452 errdefer err_msg.destroy(mod.gpa);
......@@ -1969,7 +1971,7 @@ fn zirEnumDecl(
19691971 try sema.errNote(block, other_tag_src, msg, "other tag here", .{});
19701972 break :msg msg;
19711973 };
1972 return sema.failWithOwnedErrorMsg(msg);
1974 return sema.failWithOwnedErrorMsg(block, msg);
19731975 }
19741976
19751977 if (has_tag_value) {
......@@ -2316,7 +2318,7 @@ fn zirIndexablePtrLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileE
23162318 );
23172319 break :msg msg;
23182320 };
2319 return sema.failWithOwnedErrorMsg(msg);
2321 return sema.failWithOwnedErrorMsg(block, msg);
23202322 }
23212323
23222324 return sema.fieldVal(block, src, object, "len", src);
......@@ -2772,7 +2774,7 @@ fn validateUnionInit(
27722774 try sema.addDeclaredHereNote(msg, union_ty);
27732775 break :msg msg;
27742776 };
2775 return sema.failWithOwnedErrorMsg(msg);
2777 return sema.failWithOwnedErrorMsg(block, msg);
27762778 }
27772779
27782780 if (is_comptime or block.is_comptime) {
......@@ -2889,7 +2891,7 @@ fn validateStructInit(
28892891 try sema.errNote(block, other_field_src, msg, "other field here", .{});
28902892 break :msg msg;
28912893 };
2892 return sema.failWithOwnedErrorMsg(msg);
2894 return sema.failWithOwnedErrorMsg(block, msg);
28932895 }
28942896 found_fields[field_index] = field_ptr;
28952897 }
......@@ -2936,7 +2938,7 @@ fn validateStructInit(
29362938 "struct '{s}' declared here",
29372939 .{fqn},
29382940 );
2939 return sema.failWithOwnedErrorMsg(msg);
2941 return sema.failWithOwnedErrorMsg(block, msg);
29402942 }
29412943
29422944 return;
......@@ -3043,7 +3045,7 @@ fn validateStructInit(
30433045 "struct '{s}' declared here",
30443046 .{fqn},
30453047 );
3046 return sema.failWithOwnedErrorMsg(msg);
3048 return sema.failWithOwnedErrorMsg(block, msg);
30473049 }
30483050
30493051 if (struct_is_comptime) {
......@@ -3215,7 +3217,7 @@ fn failWithBadMemberAccess(
32153217 try sema.addDeclaredHereNote(msg, agg_ty);
32163218 break :msg msg;
32173219 };
3218 return sema.failWithOwnedErrorMsg(msg);
3220 return sema.failWithOwnedErrorMsg(block, msg);
32193221}
32203222
32213223fn failWithBadStructFieldAccess(
......@@ -3241,7 +3243,7 @@ fn failWithBadStructFieldAccess(
32413243 try sema.mod.errNoteNonLazy(struct_obj.srcLoc(), msg, "struct declared here", .{});
32423244 break :msg msg;
32433245 };
3244 return sema.failWithOwnedErrorMsg(msg);
3246 return sema.failWithOwnedErrorMsg(block, msg);
32453247}
32463248
32473249fn failWithBadUnionFieldAccess(
......@@ -3267,7 +3269,7 @@ fn failWithBadUnionFieldAccess(
32673269 try sema.mod.errNoteNonLazy(union_obj.srcLoc(), msg, "union declared here", .{});
32683270 break :msg msg;
32693271 };
3270 return sema.failWithOwnedErrorMsg(msg);
3272 return sema.failWithOwnedErrorMsg(block, msg);
32713273}
32723274
32733275fn addDeclaredHereNote(sema: *Sema, parent: *Module.ErrorMsg, decl_ty: Type) !void {
......@@ -3685,7 +3687,7 @@ fn zirCImport(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileEr
36853687 @import("clang.zig").Stage2ErrorMsg.delete(c_import_res.errors.ptr, c_import_res.errors.len);
36863688 break :msg msg;
36873689 };
3688 return sema.failWithOwnedErrorMsg(msg);
3690 return sema.failWithOwnedErrorMsg(parent_block, msg);
36893691 }
36903692 const c_import_pkg = Package.create(
36913693 sema.gpa,
......@@ -4043,7 +4045,7 @@ fn zirSetAlignStack(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErr
40434045 try sema.errNote(block, src, msg, "other instance here", .{});
40444046 break :msg msg;
40454047 };
4046 return sema.failWithOwnedErrorMsg(msg);
4048 return sema.failWithOwnedErrorMsg(block, msg);
40474049 }
40484050 gop.value_ptr.* = .{ .alignment = alignment, .src = src };
40494051}
......@@ -4228,7 +4230,7 @@ fn lookupInNamespace(
42284230 }
42294231 break :msg msg;
42304232 };
4231 return sema.failWithOwnedErrorMsg(msg);
4233 return sema.failWithOwnedErrorMsg(block, msg);
42324234 },
42334235 }
42344236 } else if (namespace.decls.get(ident_name)) |decl| {
......@@ -4642,6 +4644,12 @@ fn analyzeCall(
46424644 _ = sema.analyzeBody(&child_block, fn_info.body) catch |err| switch (err) {
46434645 error.ComptimeReturn => break :result inlining.comptime_result,
46444646 error.ComptimeBreak => unreachable, // Can't break through a fn call.
4647 error.AnalysisFail => {
4648 const err_msg = inlining.err orelse return err;
4649 try sema.errNote(block, call_src, err_msg, "called from here", .{});
4650 if (block.inlining) |some| some.err = err_msg;
4651 return err;
4652 },
46454653 else => |e| return e,
46464654 };
46474655 break :result try sema.analyzeBlockBody(block, call_src, &child_block, merges);
......@@ -5266,7 +5274,7 @@ fn zirMergeErrorSets(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr
52665274 try sema.errNote(block, src, msg, "'||' merges error sets; 'or' performs boolean OR", .{});
52675275 break :msg msg;
52685276 };
5269 return sema.failWithOwnedErrorMsg(msg);
5277 return sema.failWithOwnedErrorMsg(block, msg);
52705278 }
52715279 const lhs_ty = try sema.analyzeAsType(block, lhs_src, lhs);
52725280 const rhs_ty = try sema.analyzeAsType(block, rhs_src, rhs);
......@@ -5396,7 +5404,7 @@ fn zirIntToEnum(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A
53965404 );
53975405 break :msg msg;
53985406 };
5399 return sema.failWithOwnedErrorMsg(msg);
5407 return sema.failWithOwnedErrorMsg(block, msg);
54005408 }
54015409 return sema.addConstant(dest_ty, int_val);
54025410 }
......@@ -6606,7 +6614,7 @@ fn zirSwitchCond(
66066614 try sema.addDeclaredHereNote(msg, union_ty);
66076615 break :msg msg;
66086616 };
6609 return sema.failWithOwnedErrorMsg(msg);
6617 return sema.failWithOwnedErrorMsg(block, msg);
66106618 };
66116619 return sema.unionToTag(block, enum_ty, operand, src);
66126620 },
......@@ -6686,7 +6694,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
66866694 );
66876695 break :msg msg;
66886696 };
6689 return sema.failWithOwnedErrorMsg(msg);
6697 return sema.failWithOwnedErrorMsg(block, msg);
66906698 }
66916699
66926700 // Validate for duplicate items, missing else prong, and invalid range.
......@@ -6778,7 +6786,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
67786786 );
67796787 break :msg msg;
67806788 };
6781 return sema.failWithOwnedErrorMsg(msg);
6789 return sema.failWithOwnedErrorMsg(block, msg);
67826790 }
67836791 },
67846792 .under => {
......@@ -6892,7 +6900,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
68926900 "error set '{}' declared here",
68936901 .{operand_ty},
68946902 );
6895 return sema.failWithOwnedErrorMsg(msg);
6903 return sema.failWithOwnedErrorMsg(block, msg);
68966904 }
68976905
68986906 if (special_prong == .@"else") {
......@@ -7571,7 +7579,7 @@ fn validateSwitchItemEnum(
75717579 );
75727580 break :msg msg;
75737581 };
7574 return sema.failWithOwnedErrorMsg(msg);
7582 return sema.failWithOwnedErrorMsg(block, msg);
75757583 };
75767584 const maybe_prev_src = seen_fields[field_index];
75777585 seen_fields[field_index] = switch_prong_src;
......@@ -7624,7 +7632,7 @@ fn validateSwitchDupe(
76247632 );
76257633 break :msg msg;
76267634 };
7627 return sema.failWithOwnedErrorMsg(msg);
7635 return sema.failWithOwnedErrorMsg(block, msg);
76287636}
76297637
76307638fn validateSwitchItemBool(
......@@ -7693,7 +7701,7 @@ fn validateSwitchNoRange(
76937701 );
76947702 break :msg msg;
76957703 };
7696 return sema.failWithOwnedErrorMsg(msg);
7704 return sema.failWithOwnedErrorMsg(block, msg);
76977705}
76987706
76997707fn zirHasField(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref {
......@@ -9486,6 +9494,8 @@ fn analyzePtrArithmetic(
94869494 }
94879495
94889496 const offset_int = try sema.usizeCast(block, offset_src, offset_val.toUnsignedInt());
9497 // TODO I tried to put this check earlier but it the LLVM backend generate invalid instructinons
9498 if (offset_int == 0) return ptr;
94899499 if (ptr_val.getUnsignedInt()) |addr| {
94909500 const target = sema.mod.getTarget();
94919501 const ptr_child_ty = ptr_ty.childType();
......@@ -11569,7 +11579,7 @@ fn zirStructInit(
1156911579 try sema.errNote(block, other_field_src, msg, "other field here", .{});
1157011580 break :msg msg;
1157111581 };
11572 return sema.failWithOwnedErrorMsg(msg);
11582 return sema.failWithOwnedErrorMsg(block, msg);
1157311583 }
1157411584 found_fields[field_index] = item.data.field_type;
1157511585 field_inits[field_index] = sema.resolveInst(item.data.init);
......@@ -11647,7 +11657,7 @@ fn finishStructInit(
1164711657 "struct '{s}' declared here",
1164811658 .{fqn},
1164911659 );
11650 return sema.failWithOwnedErrorMsg(msg);
11660 return sema.failWithOwnedErrorMsg(block, msg);
1165111661 }
1165211662
1165311663 const is_comptime = for (field_inits) |field_init| {
......@@ -12130,7 +12140,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
1213012140 try sema.mod.errNoteNonLazy(decl.srcLoc(), msg, "declared here", .{});
1213112141 break :msg msg;
1213212142 };
12133 return sema.failWithOwnedErrorMsg(msg);
12143 return sema.failWithOwnedErrorMsg(block, msg);
1213412144 },
1213512145 else => return sema.fail(block, operand_src, "expected enum or union; found {}", .{
1213612146 operand_ty,
......@@ -12148,7 +12158,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
1214812158 try sema.mod.errNoteNonLazy(enum_decl.srcLoc(), msg, "declared here", .{});
1214912159 break :msg msg;
1215012160 };
12151 return sema.failWithOwnedErrorMsg(msg);
12161 return sema.failWithOwnedErrorMsg(block, msg);
1215212162 };
1215312163 const field_name = enum_ty.enumFieldName(field_index);
1215412164 return sema.addStrLit(block, field_name);
......@@ -12624,7 +12634,7 @@ fn zirTruncate(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1262412634 });
1262512635 break :msg msg;
1262612636 };
12627 return sema.failWithOwnedErrorMsg(msg);
12637 return sema.failWithOwnedErrorMsg(block, msg);
1262812638 }
1262912639 }
1263012640
......@@ -12884,7 +12894,7 @@ fn checkPtrOperand(
1288412894
1288512895 break :msg msg;
1288612896 };
12887 return sema.failWithOwnedErrorMsg(msg);
12897 return sema.failWithOwnedErrorMsg(block, msg);
1288812898 },
1288912899 .Optional => if (ty.isPtrLikeOptional()) return,
1289012900 else => {},
......@@ -12914,7 +12924,7 @@ fn checkPtrType(
1291412924
1291512925 break :msg msg;
1291612926 };
12917 return sema.failWithOwnedErrorMsg(msg);
12927 return sema.failWithOwnedErrorMsg(block, msg);
1291812928 },
1291912929 .Optional => if (ty.isPtrLikeOptional()) return,
1292012930 else => {},
......@@ -13037,7 +13047,7 @@ fn checkComptimeVarStore(
1303713047 try sema.errNote(block, cond_src, msg, "runtime condition here", .{});
1303813048 break :msg msg;
1303913049 };
13040 return sema.failWithOwnedErrorMsg(msg);
13050 return sema.failWithOwnedErrorMsg(block, msg);
1304113051 }
1304213052 if (block.runtime_loop) |loop_src| {
1304313053 const msg = msg: {
......@@ -13046,7 +13056,7 @@ fn checkComptimeVarStore(
1304613056 try sema.errNote(block, loop_src, msg, "non-inline loop here", .{});
1304713057 break :msg msg;
1304813058 };
13049 return sema.failWithOwnedErrorMsg(msg);
13059 return sema.failWithOwnedErrorMsg(block, msg);
1305013060 }
1305113061 unreachable;
1305213062 }
......@@ -13114,7 +13124,7 @@ fn checkSimdBinOp(
1311413124 try sema.errNote(block, rhs_src, msg, "length {d} here", .{rhs_len});
1311513125 break :msg msg;
1311613126 };
13117 return sema.failWithOwnedErrorMsg(msg);
13127 return sema.failWithOwnedErrorMsg(block, msg);
1311813128 }
1311913129 vec_len = try sema.usizeCast(block, lhs_src, lhs_len);
1312013130 } else if (lhs_zig_ty_tag == .Vector or rhs_zig_ty_tag == .Vector) {
......@@ -13132,7 +13142,7 @@ fn checkSimdBinOp(
1313213142 }
1313313143 break :msg msg;
1313413144 };
13135 return sema.failWithOwnedErrorMsg(msg);
13145 return sema.failWithOwnedErrorMsg(block, msg);
1313613146 }
1313713147 const result_ty = try sema.resolvePeerTypes(block, src, &.{ uncasted_lhs, uncasted_rhs }, .{
1313813148 .override = &[_]LazySrcLoc{ lhs_src, rhs_src },
......@@ -14263,7 +14273,7 @@ fn validateVarType(
1426314273
1426414274 break :msg msg;
1426514275 };
14266 return sema.failWithOwnedErrorMsg(msg);
14276 return sema.failWithOwnedErrorMsg(block, msg);
1426714277}
1426814278
1426914279fn explainWhyTypeIsComptime(
......@@ -15037,7 +15047,7 @@ fn namespaceLookup(
1503715047 try sema.mod.errNoteNonLazy(decl.srcLoc(), msg, "declared here", .{});
1503815048 break :msg msg;
1503915049 };
15040 return sema.failWithOwnedErrorMsg(msg);
15050 return sema.failWithOwnedErrorMsg(block, msg);
1504115051 }
1504215052 return decl;
1504315053 }
......@@ -15961,7 +15971,7 @@ fn coerce(
1596115971 );
1596215972 break :msg msg;
1596315973 };
15964 return sema.failWithOwnedErrorMsg(msg);
15974 return sema.failWithOwnedErrorMsg(block, msg);
1596515975 };
1596615976 return sema.addConstant(
1596715977 dest_ty,
......@@ -16844,7 +16854,7 @@ fn beginComptimePtrLoad(
1684416854 };
1684516855 return ComptimePtrLoadKit{
1684616856 .root_val = parent.root_val,
16847 .root_ty = parent.ty,
16857 .root_ty = parent.root_ty,
1684816858 .val = try parent.val.elemValue(sema.arena, elem_ptr.index),
1684916859 .ty = elem_ty,
1685016860 .byte_offset = byte_offset,
......@@ -16860,7 +16870,7 @@ fn beginComptimePtrLoad(
1686016870 }
1686116871 return ComptimePtrLoadKit{
1686216872 .root_val = parent.root_val,
16863 .root_ty = parent.ty,
16873 .root_ty = parent.root_ty,
1686416874 .val = parent.val,
1686516875 .ty = parent.ty,
1686616876 .byte_offset = parent.byte_offset,
......@@ -16888,7 +16898,7 @@ fn beginComptimePtrLoad(
1688816898 };
1688916899 return ComptimePtrLoadKit{
1689016900 .root_val = parent.root_val,
16891 .root_ty = parent.ty,
16901 .root_ty = parent.root_ty,
1689216902 .val = try parent.val.fieldValue(sema.arena, field_index),
1689316903 .ty = parent.ty.structFieldType(field_index),
1689416904 .byte_offset = byte_offset,
......@@ -17034,7 +17044,7 @@ fn coerceEnumToUnion(
1703417044 try sema.addDeclaredHereNote(msg, union_ty);
1703517045 break :msg msg;
1703617046 };
17037 return sema.failWithOwnedErrorMsg(msg);
17047 return sema.failWithOwnedErrorMsg(block, msg);
1703817048 };
1703917049
1704017050 const enum_tag = try sema.coerce(block, tag_ty, inst, inst_src);
......@@ -17049,7 +17059,7 @@ fn coerceEnumToUnion(
1704917059 try sema.addDeclaredHereNote(msg, union_ty);
1705017060 break :msg msg;
1705117061 };
17052 return sema.failWithOwnedErrorMsg(msg);
17062 return sema.failWithOwnedErrorMsg(block, msg);
1705317063 };
1705417064 const field = union_obj.fields.values()[field_index];
1705517065 const field_ty = try sema.resolveTypeFields(block, inst_src, field.ty);
......@@ -17064,7 +17074,7 @@ fn coerceEnumToUnion(
1706417074 try sema.addDeclaredHereNote(msg, union_ty);
1706517075 break :msg msg;
1706617076 };
17067 return sema.failWithOwnedErrorMsg(msg);
17077 return sema.failWithOwnedErrorMsg(block, msg);
1706817078 };
1706917079
1707017080 return sema.addConstant(union_ty, try Value.Tag.@"union".create(sema.arena, .{
......@@ -17084,7 +17094,7 @@ fn coerceEnumToUnion(
1708417094 try sema.addDeclaredHereNote(msg, tag_ty);
1708517095 break :msg msg;
1708617096 };
17087 return sema.failWithOwnedErrorMsg(msg);
17097 return sema.failWithOwnedErrorMsg(block, msg);
1708817098 }
1708917099
1709017100 // If the union has all fields 0 bits, the union value is just the enum value.
......@@ -17102,7 +17112,7 @@ fn coerceEnumToUnion(
1710217112 try sema.addDeclaredHereNote(msg, union_ty);
1710317113 break :msg msg;
1710417114 };
17105 return sema.failWithOwnedErrorMsg(msg);
17115 return sema.failWithOwnedErrorMsg(block, msg);
1710617116}
1710717117
1710817118fn coerceAnonStructToUnion(
......@@ -17131,7 +17141,7 @@ fn coerceAnonStructToUnion(
1713117141 try sema.addDeclaredHereNote(msg, union_ty);
1713217142 break :msg msg;
1713317143 };
17134 return sema.failWithOwnedErrorMsg(msg);
17144 return sema.failWithOwnedErrorMsg(block, msg);
1713517145 }
1713617146
1713717147 const field_name = anon_struct.names[0];
......@@ -17176,7 +17186,7 @@ fn coerceArrayLike(
1717617186 try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len});
1717717187 break :msg msg;
1717817188 };
17179 return sema.failWithOwnedErrorMsg(msg);
17189 return sema.failWithOwnedErrorMsg(block, msg);
1718017190 }
1718117191
1718217192 const target = sema.mod.getTarget();
......@@ -17248,7 +17258,7 @@ fn coerceTupleToArray(
1724817258 try sema.errNote(block, inst_src, msg, "source has length {d}", .{inst_len});
1724917259 break :msg msg;
1725017260 };
17251 return sema.failWithOwnedErrorMsg(msg);
17261 return sema.failWithOwnedErrorMsg(block, msg);
1725217262 }
1725317263
1725417264 const element_vals = try sema.arena.alloc(Value, dest_len);
......@@ -18446,7 +18456,7 @@ fn resolvePeerTypes(
1844618456
1844718457 break :msg msg;
1844818458 };
18449 return sema.failWithOwnedErrorMsg(msg);
18459 return sema.failWithOwnedErrorMsg(block, msg);
1845018460 }
1845118461
1845218462 const chosen_ty = sema.typeOf(chosen);
src/type.zig+2-8
......@@ -2170,11 +2170,7 @@ pub const Type = extern union {
21702170 .optional_single_mut_pointer,
21712171 => {
21722172 const child_type = self.cast(Payload.ElemType).?.data;
2173 if (child_type.zigTypeTag() == .Opaque) {
2174 return 1;
2175 } else {
2176 return child_type.abiAlignment(target);
2177 }
2173 return child_type.abiAlignment(target);
21782174 },
21792175
21802176 .manyptr_u8,
......@@ -2188,8 +2184,6 @@ pub const Type = extern union {
21882184 const ptr_info = self.castTag(.pointer).?.data;
21892185 if (ptr_info.@"align" != 0) {
21902186 return ptr_info.@"align";
2191 } else if (ptr_info.pointee_type.zigTypeTag() == .Opaque) {
2192 return 1;
21932187 } else {
21942188 return ptr_info.pointee_type.abiAlignment(target);
21952189 }
......@@ -2246,6 +2240,7 @@ pub const Type = extern union {
22462240 .export_options,
22472241 .extern_options,
22482242 .@"opaque",
2243 .anyopaque,
22492244 => return 1,
22502245
22512246 .fn_noreturn_no_args, // represents machine code; not a pointer
......@@ -2419,7 +2414,6 @@ pub const Type = extern union {
24192414
24202415 .empty_struct,
24212416 .void,
2422 .anyopaque,
24232417 .empty_struct_literal,
24242418 .type,
24252419 .comptime_int,
test/behavior/basic.zig+5-1
......@@ -747,7 +747,11 @@ fn maybe(x: bool) anyerror!?u32 {
747747}
748748
749749test "pointer to thread local array" {
750 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
750 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
751 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
752 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
753 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
754 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
751755
752756 const s = "Hello world";
753757 std.mem.copy(u8, buffer[0..], s);
test/behavior/pointers.zig+5-1
......@@ -391,7 +391,11 @@ test "@ptrToInt on null optional at comptime" {
391391}
392392
393393test "indexing array with sentinel returns correct type" {
394 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
394 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
395 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
396 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
397 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
398 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
395399
396400 var s: [:0]const u8 = "abc";
397401 try testing.expectEqualSlices(u8, "*const u8", @typeName(@TypeOf(&s[0])));
test/stage2/x86_64.zig+4-1
......@@ -1183,7 +1183,10 @@ pub fn addCases(ctx: *TestContext) !void {
11831183 \\ if (a == 10) @compileError("bad");
11841184 \\ return a + b + c;
11851185 \\}
1186 , &[_][]const u8{":8:18: error: bad"});
1186 , &[_][]const u8{
1187 ":8:18: error: bad",
1188 ":3:18: note: called from here",
1189 });
11871190
11881191 case.addCompareOutput(
11891192 \\pub fn main() void {