aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-11-11 04:42:33 -0500
committerGitHub <noreply@github.com>2023-11-11 04:42:33 -0500
commit78df899b888df1c1b77a7630d94a08675f12f83e (patch)
tree893838e6791eca3ca74275d2b6b84078a097740c /src
parent97e23896a9168132b6d36ca22ae1af10dd53d80d (diff)
parentae8992629cc3d03379381ae37ab10d0e03edfd03 (diff)
downloadzig-78df899b888df1c1b77a7630d94a08675f12f83e.tar.gz
zig-78df899b888df1c1b77a7630d94a08675f12f83e.zip
Merge pull request #17967 from jacobly0/x86_64-cases
Diffstat (limited to 'src')
-rw-r--r--src/Module.zig5
-rw-r--r--src/Sema.zig6
-rw-r--r--src/codegen/llvm/BitcodeReader.zig4
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);