diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-11-11 04:42:33 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-11 04:42:33 -0500 |
| commit | 78df899b888df1c1b77a7630d94a08675f12f83e (patch) | |
| tree | 893838e6791eca3ca74275d2b6b84078a097740c /src | |
| parent | 97e23896a9168132b6d36ca22ae1af10dd53d80d (diff) | |
| parent | ae8992629cc3d03379381ae37ab10d0e03edfd03 (diff) | |
| download | zig-78df899b888df1c1b77a7630d94a08675f12f83e.tar.gz zig-78df899b888df1c1b77a7630d94a08675f12f83e.zip | |
Merge pull request #17967 from jacobly0/x86_64-cases
Diffstat (limited to 'src')
| -rw-r--r-- | src/Module.zig | 5 | ||||
| -rw-r--r-- | src/Sema.zig | 6 | ||||
| -rw-r--r-- | src/codegen/llvm/BitcodeReader.zig | 4 |
3 files changed, 8 insertions, 7 deletions
diff --git a/src/Module.zig b/src/Module.zig index eda4624bd0..8ba856cf68 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -1250,6 +1250,7 @@ pub const ErrorMsg = struct { comptime format: []const u8, args: anytype, ) !*ErrorMsg { + assert(src_loc.lazy != .unneeded); const err_msg = try gpa.create(ErrorMsg); errdefer gpa.destroy(err_msg); err_msg.* = try ErrorMsg.init(gpa, src_loc, format, args); @@ -3542,8 +3543,6 @@ pub fn semaFile(mod: *Module, file: *File) SemaError!void { new_decl.ty = Type.type; new_decl.alignment = .none; new_decl.@"linksection" = .none; - new_decl.has_tv = true; - new_decl.owns_tv = true; new_decl.alive = true; // This Decl corresponds to a File and is therefore always alive. new_decl.analysis = .in_progress; new_decl.generation = mod.generation; @@ -3593,6 +3592,8 @@ pub fn semaFile(mod: *Module, file: *File) SemaError!void { new_namespace.ty = struct_ty.toType(); new_decl.val = struct_ty.toValue(); + new_decl.has_tv = true; + new_decl.owns_tv = true; new_decl.analysis = .complete; if (mod.comp.whole_cache_manifest) |whole_cache_manifest| { diff --git a/src/Sema.zig b/src/Sema.zig index b7510cea54..7823b3ae0f 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -2438,8 +2438,9 @@ fn errMsg( src: LazySrcLoc, comptime format: []const u8, args: anytype, -) error{OutOfMemory}!*Module.ErrorMsg { +) error{ NeededSourceLocation, OutOfMemory }!*Module.ErrorMsg { const mod = sema.mod; + if (src == .unneeded) return error.NeededSourceLocation; const src_decl = mod.declPtr(block.src_decl); return Module.ErrorMsg.create(sema.gpa, src.toSrcLoc(src_decl, mod), format, args); } @@ -2455,14 +2456,13 @@ pub fn fail( return sema.failWithOwnedErrorMsg(block, err_msg); } -fn failWithOwnedErrorMsg(sema: *Sema, block: ?*Block, err_msg: *Module.ErrorMsg) CompileError { +fn failWithOwnedErrorMsg(sema: *Sema, block: ?*Block, err_msg: *Module.ErrorMsg) error{ AnalysisFail, OutOfMemory } { @setCold(true); const gpa = sema.gpa; const mod = sema.mod; ref: { errdefer err_msg.destroy(gpa); - if (err_msg.src_loc.lazy == .unneeded) return error.NeededSourceLocation; if (crash_report.is_enabled and mod.comp.debug_compile_errors) { var wip_errors: std.zig.ErrorBundle.Wip = undefined; diff --git a/src/codegen/llvm/BitcodeReader.zig b/src/codegen/llvm/BitcodeReader.zig index b1e1b7c453..3232d58608 100644 --- a/src/codegen/llvm/BitcodeReader.zig +++ b/src/codegen/llvm/BitcodeReader.zig @@ -51,8 +51,8 @@ pub const Block = struct { pub const Record = struct { name: []const u8, id: u32, - operands: []u64, - blob: []u8, + operands: []const u64, + blob: []const u8, fn toOwnedAbbrev(record: Record, allocator: std.mem.Allocator) !Abbrev { var operands = std.ArrayList(Abbrev.Operand).init(allocator); |
