Commit 75548b50ff
Changed files (48)
ci
lib
std
event
src
test
ci/srht/update-download-page.zig
@@ -6,7 +6,7 @@ pub fn main() !void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
- const allocator = &arena.allocator;
+ const allocator = arena.getAllocator();
const out_dir = "out";
try std.fs.cwd().makePath(out_dir);
doc/docgen.zig
@@ -21,7 +21,7 @@ pub fn main() !void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
- const allocator = &arena.allocator;
+ const allocator = arena.getAllocator();
var args_it = process.args();
doc/langref.html.in
@@ -7362,7 +7362,7 @@ fn amain() !void {
}
var global_download_frame: anyframe = undefined;
-fn fetchUrl(allocator: *Allocator, url: []const u8) ![]u8 {
+fn fetchUrl(allocator: Allocator, url: []const u8) ![]u8 {
_ = url; // this is just an example, we don't actually do it!
const result = try allocator.dupe(u8, "this is the downloaded url contents");
errdefer allocator.free(result);
@@ -7374,7 +7374,7 @@ fn fetchUrl(allocator: *Allocator, url: []const u8) ![]u8 {
}
var global_file_frame: anyframe = undefined;
-fn readFile(allocator: *Allocator, filename: []const u8) ![]u8 {
+fn readFile(allocator: Allocator, filename: []const u8) ![]u8 {
_ = filename; // this is just an example, we don't actually do it!
const result = try allocator.dupe(u8, "this is the file contents");
errdefer allocator.free(result);
@@ -7433,7 +7433,7 @@ fn amain() !void {
std.debug.print("file_text: {s}\n", .{file_text});
}
-fn fetchUrl(allocator: *Allocator, url: []const u8) ![]u8 {
+fn fetchUrl(allocator: Allocator, url: []const u8) ![]u8 {
_ = url; // this is just an example, we don't actually do it!
const result = try allocator.dupe(u8, "this is the downloaded url contents");
errdefer allocator.free(result);
@@ -7441,7 +7441,7 @@ fn fetchUrl(allocator: *Allocator, url: []const u8) ![]u8 {
return result;
}
-fn readFile(allocator: *Allocator, filename: []const u8) ![]u8 {
+fn readFile(allocator: Allocator, filename: []const u8) ![]u8 {
_ = filename; // this is just an example, we don't actually do it!
const result = try allocator.dupe(u8, "this is the file contents");
errdefer allocator.free(result);
@@ -10050,8 +10050,8 @@ pub fn main() void {
C has a default allocator - <code>malloc</code>, <code>realloc</code>, and <code>free</code>.
When linking against libc, Zig exposes this allocator with {#syntax#}std.heap.c_allocator{#endsyntax#}.
However, by convention, there is no default allocator in Zig. Instead, functions which need to
- allocate accept an {#syntax#}*Allocator{#endsyntax#} parameter. Likewise, data structures such as
- {#syntax#}std.ArrayList{#endsyntax#} accept an {#syntax#}*Allocator{#endsyntax#} parameter in
+ allocate accept an {#syntax#}Allocator{#endsyntax#} parameter. Likewise, data structures such as
+ {#syntax#}std.ArrayList{#endsyntax#} accept an {#syntax#}Allocator{#endsyntax#} parameter in
their initialization functions:
</p>
{#code_begin|test|allocator#}
@@ -10061,12 +10061,12 @@ const expect = std.testing.expect;
test "using an allocator" {
var buffer: [100]u8 = undefined;
- const allocator = &std.heap.FixedBufferAllocator.init(&buffer).allocator;
+ const allocator = std.heap.FixedBufferAllocator.init(&buffer).getAllocator();
const result = try concat(allocator, "foo", "bar");
try expect(std.mem.eql(u8, "foobar", result));
}
-fn concat(allocator: *Allocator, a: []const u8, b: []const u8) ![]u8 {
+fn concat(allocator: Allocator, a: []const u8, b: []const u8) ![]u8 {
const result = try allocator.alloc(u8, a.len + b.len);
std.mem.copy(u8, result, a);
std.mem.copy(u8, result[a.len..], b);
@@ -10091,7 +10091,7 @@ fn concat(allocator: *Allocator, a: []const u8, b: []const u8) ![]u8 {
</p>
<ol>
<li>
- Are you making a library? In this case, best to accept an {#syntax#}*Allocator{#endsyntax#}
+ Are you making a library? In this case, best to accept an {#syntax#}Allocator{#endsyntax#}
as a parameter and allow your library's users to decide what allocator to use.
</li>
<li>Are you linking libc? In this case, {#syntax#}std.heap.c_allocator{#endsyntax#} is likely
@@ -10114,7 +10114,7 @@ pub fn main() !void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
- const allocator = &arena.allocator;
+ const allocator = arena.getAllocator();
const ptr = try allocator.create(i32);
std.debug.print("ptr={*}\n", .{ptr});
@@ -10281,7 +10281,7 @@ test "string literal to constant slice" {
<p>
For example, the function's documentation may say "caller owns the returned memory", in which case
the code that calls the function must have a plan for when to free that memory. Probably in this situation,
- the function will accept an {#syntax#}*Allocator{#endsyntax#} parameter.
+ the function will accept an {#syntax#}Allocator{#endsyntax#} parameter.
</p>
<p>
Sometimes the lifetime of a pointer may be more complicated. For example, the
@@ -10820,7 +10820,7 @@ const std = @import("std");
pub fn main() !void {
var general_purpose_allocator = std.heap.GeneralPurposeAllocator(.{}){};
- const gpa = &general_purpose_allocator.allocator;
+ const gpa = general_purpose_allocator.getAllocator();
const args = try std.process.argsAlloc(gpa);
defer std.process.argsFree(gpa, args);
@@ -10842,7 +10842,7 @@ const PreopenList = std.fs.wasi.PreopenList;
pub fn main() !void {
var general_purpose_allocator = std.heap.GeneralPurposeAllocator(.{}){};
- const gpa = &general_purpose_allocator.allocator;
+ const gpa = general_purpose_allocator.getAllocator();
var preopens = PreopenList.init(gpa);
defer preopens.deinit();
lib/std/event/loop.zig
@@ -173,12 +173,12 @@ pub const Loop = struct {
// We need at least one of these in case the fs thread wants to use onNextTick
const extra_thread_count = thread_count - 1;
const resume_node_count = std.math.max(extra_thread_count, 1);
- self.eventfd_resume_nodes = try self.arena.allocator.alloc(
+ self.eventfd_resume_nodes = try self.arena.getAllocator().alloc(
std.atomic.Stack(ResumeNode.EventFd).Node,
resume_node_count,
);
- self.extra_threads = try self.arena.allocator.alloc(Thread, extra_thread_count);
+ self.extra_threads = try self.arena.getAllocator().alloc(Thread, extra_thread_count);
try self.initOsData(extra_thread_count);
errdefer self.deinitOsData();
src/codegen/c.zig
@@ -390,6 +390,7 @@ pub const DeclGen = struct {
// Fall back to generic implementation.
var arena = std.heap.ArenaAllocator.init(dg.module.gpa);
defer arena.deinit();
+ const arena_allocator = arena.getAllocator();
try writer.writeAll("{");
var index: usize = 0;
@@ -397,7 +398,7 @@ pub const DeclGen = struct {
const elem_ty = ty.elemType();
while (index < len) : (index += 1) {
if (index != 0) try writer.writeAll(",");
- const elem_val = try val.elemValue(&arena.allocator, index);
+ const elem_val = try val.elemValue(arena_allocator, index);
try dg.renderValue(writer, elem_ty, elem_val);
}
if (ty.sentinel()) |sentinel_val| {
src/codegen/llvm.zig
@@ -331,7 +331,7 @@ pub const Object = struct {
var arena_allocator = std.heap.ArenaAllocator.init(comp.gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const mod = comp.bin_file.options.module.?;
const cache_dir = mod.zig_cache_artifact_directory;
@@ -779,7 +779,7 @@ pub const DeclGen = struct {
// The Type memory is ephemeral; since we want to store a longer-lived
// reference, we need to copy it here.
- gop.key_ptr.* = try t.copy(&dg.object.type_map_arena.allocator);
+ gop.key_ptr.* = try t.copy(dg.object.type_map_arena.getAllocator());
const opaque_obj = t.castTag(.@"opaque").?.data;
const name = try opaque_obj.getFullyQualifiedName(gpa);
@@ -837,7 +837,7 @@ pub const DeclGen = struct {
// The Type memory is ephemeral; since we want to store a longer-lived
// reference, we need to copy it here.
- gop.key_ptr.* = try t.copy(&dg.object.type_map_arena.allocator);
+ gop.key_ptr.* = try t.copy(dg.object.type_map_arena.getAllocator());
const struct_obj = t.castTag(.@"struct").?.data;
@@ -871,7 +871,7 @@ pub const DeclGen = struct {
// The Type memory is ephemeral; since we want to store a longer-lived
// reference, we need to copy it here.
- gop.key_ptr.* = try t.copy(&dg.object.type_map_arena.allocator);
+ gop.key_ptr.* = try t.copy(dg.object.type_map_arena.getAllocator());
const union_obj = t.cast(Type.Payload.Union).?.data;
const target = dg.module.getTarget();
@@ -2485,7 +2485,7 @@ pub const FuncGen = struct {
var arena_allocator = std.heap.ArenaAllocator.init(self.gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const llvm_params_len = args.len;
const llvm_param_types = try arena.alloc(*const llvm.Type, llvm_params_len);
src/link/tapi/yaml.zig
@@ -248,15 +248,16 @@ pub const Yaml = struct {
pub fn load(allocator: Allocator, source: []const u8) !Yaml {
var arena = ArenaAllocator.init(allocator);
+ const arena_allocator = arena.getAllocator();
- var tree = Tree.init(&arena.allocator);
+ var tree = Tree.init(arena_allocator);
try tree.parse(source);
- var docs = std.ArrayList(Value).init(&arena.allocator);
+ var docs = std.ArrayList(Value).init(arena_allocator);
try docs.ensureUnusedCapacity(tree.docs.items.len);
for (tree.docs.items) |node| {
- const value = try Value.fromNode(&arena.allocator, &tree, node, null);
+ const value = try Value.fromNode(arena_allocator, &tree, node, null);
docs.appendAssumeCapacity(value);
}
@@ -299,7 +300,7 @@ pub const Yaml = struct {
.Pointer => |info| {
switch (info.size) {
.Slice => {
- var parsed = try self.arena.allocator.alloc(info.child, self.docs.items.len);
+ var parsed = try self.arena.getAllocator().alloc(info.child, self.docs.items.len);
for (self.docs.items) |doc, i| {
parsed[i] = try self.parseValue(info.child, doc);
}
@@ -361,7 +362,7 @@ pub const Yaml = struct {
inline for (struct_info.fields) |field| {
const value: ?Value = map.get(field.name) orelse blk: {
- const field_name = try mem.replaceOwned(u8, &self.arena.allocator, field.name, "_", "-");
+ const field_name = try mem.replaceOwned(u8, self.arena.getAllocator(), field.name, "_", "-");
break :blk map.get(field_name);
};
@@ -382,7 +383,7 @@ pub const Yaml = struct {
fn parsePointer(self: *Yaml, comptime T: type, value: Value) Error!T {
const ptr_info = @typeInfo(T).Pointer;
- const arena = &self.arena.allocator;
+ const arena = self.arena.getAllocator();
switch (ptr_info.size) {
.Slice => {
src/link/C.zig
@@ -128,7 +128,7 @@ pub fn updateFunc(self: *C, module: *Module, func: *Module.Fn, air: Air, livenes
.decl = decl,
.fwd_decl = fwd_decl.toManaged(module.gpa),
.typedefs = typedefs.promote(module.gpa),
- .typedefs_arena = &self.arena.allocator,
+ .typedefs_arena = self.arena.getAllocator(),
},
.code = code.toManaged(module.gpa),
.indent_writer = undefined, // set later so we can get a pointer to object.code
@@ -193,7 +193,7 @@ pub fn updateDecl(self: *C, module: *Module, decl: *Module.Decl) !void {
.decl = decl,
.fwd_decl = fwd_decl.toManaged(module.gpa),
.typedefs = typedefs.promote(module.gpa),
- .typedefs_arena = &self.arena.allocator,
+ .typedefs_arena = self.arena.getAllocator(),
},
.code = code.toManaged(module.gpa),
.indent_writer = undefined, // set later so we can get a pointer to object.code
src/link/Coff.zig
@@ -877,7 +877,7 @@ fn linkWithLLD(self: *Coff, comp: *Compilation) !void {
var arena_allocator = std.heap.ArenaAllocator.init(self.base.allocator);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const directory = self.base.options.emit.?.directory; // Just an alias to make it shorter to type.
src/link/Elf.zig
@@ -1243,7 +1243,7 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void {
var arena_allocator = std.heap.ArenaAllocator.init(self.base.allocator);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const directory = self.base.options.emit.?.directory; // Just an alias to make it shorter to type.
src/link/MachO.zig
@@ -412,7 +412,7 @@ pub fn flushModule(self: *MachO, comp: *Compilation) !void {
var arena_allocator = std.heap.ArenaAllocator.init(self.base.allocator);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const directory = self.base.options.emit.?.directory; // Just an alias to make it shorter to type.
@@ -5379,7 +5379,7 @@ fn snapshotState(self: *MachO) !void {
var arena_allocator = std.heap.ArenaAllocator.init(self.base.allocator);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const out_file = try emit.directory.handle.createFile("snapshots.json", .{
.truncate = self.cold_start,
src/link/Plan9.zig
@@ -168,7 +168,7 @@ fn putFn(self: *Plan9, decl: *Module.Decl, out: FnDeclOutput) !void {
try fn_map_res.value_ptr.functions.put(gpa, decl, out);
} else {
const file = decl.getFileScope();
- const arena = &self.path_arena.allocator;
+ const arena = self.path_arena.getAllocator();
// each file gets a symbol
fn_map_res.value_ptr.* = .{
.sym_index = blk: {
src/link/tapi.zig
@@ -120,7 +120,7 @@ pub const LibStub = struct {
err: {
log.debug("trying to parse as []TbdV4", .{});
const inner = lib_stub.yaml.parse([]TbdV4) catch break :err;
- var out = try lib_stub.yaml.arena.allocator.alloc(Tbd, inner.len);
+ var out = try lib_stub.yaml.arena.getAllocator().alloc(Tbd, inner.len);
for (inner) |doc, i| {
out[i] = .{ .v4 = doc };
}
@@ -130,7 +130,7 @@ pub const LibStub = struct {
err: {
log.debug("trying to parse as TbdV4", .{});
const inner = lib_stub.yaml.parse(TbdV4) catch break :err;
- var out = try lib_stub.yaml.arena.allocator.alloc(Tbd, 1);
+ var out = try lib_stub.yaml.arena.getAllocator().alloc(Tbd, 1);
out[0] = .{ .v4 = inner };
break :blk out;
}
@@ -148,7 +148,7 @@ pub const LibStub = struct {
err: {
log.debug("trying to parse as TbdV3", .{});
const inner = lib_stub.yaml.parse(TbdV3) catch break :err;
- var out = try lib_stub.yaml.arena.allocator.alloc(Tbd, 1);
+ var out = try lib_stub.yaml.arena.getAllocator().alloc(Tbd, 1);
out[0] = .{ .v3 = inner };
break :blk out;
}
src/link/Wasm.zig
@@ -950,7 +950,7 @@ fn linkWithLLD(self: *Wasm, comp: *Compilation) !void {
var arena_allocator = std.heap.ArenaAllocator.init(self.base.allocator);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const directory = self.base.options.emit.?.directory; // Just an alias to make it shorter to type.
src/AstGen.zig
@@ -98,7 +98,7 @@ pub fn generate(gpa: Allocator, tree: Ast) Allocator.Error!Zir {
var astgen: AstGen = .{
.gpa = gpa,
- .arena = &arena.allocator,
+ .arena = arena.getAllocator(),
.tree = &tree,
};
defer astgen.deinit(gpa);
@@ -1939,6 +1939,7 @@ fn blockExprStmts(gz: *GenZir, parent_scope: *Scope, statements: []const Ast.Nod
var block_arena = std.heap.ArenaAllocator.init(gz.astgen.gpa);
defer block_arena.deinit();
+ const block_arena_allocator = block_arena.getAllocator();
var noreturn_src_node: Ast.Node.Index = 0;
var scope = parent_scope;
@@ -1959,13 +1960,13 @@ fn blockExprStmts(gz: *GenZir, parent_scope: *Scope, statements: []const Ast.Nod
}
switch (node_tags[statement]) {
// zig fmt: off
- .global_var_decl => scope = try varDecl(gz, scope, statement, &block_arena.allocator, tree.globalVarDecl(statement)),
- .local_var_decl => scope = try varDecl(gz, scope, statement, &block_arena.allocator, tree.localVarDecl(statement)),
- .simple_var_decl => scope = try varDecl(gz, scope, statement, &block_arena.allocator, tree.simpleVarDecl(statement)),
- .aligned_var_decl => scope = try varDecl(gz, scope, statement, &block_arena.allocator, tree.alignedVarDecl(statement)),
+ .global_var_decl => scope = try varDecl(gz, scope, statement, block_arena_allocator, tree.globalVarDecl(statement)),
+ .local_var_decl => scope = try varDecl(gz, scope, statement, block_arena_allocator, tree.localVarDecl(statement)),
+ .simple_var_decl => scope = try varDecl(gz, scope, statement, block_arena_allocator, tree.simpleVarDecl(statement)),
+ .aligned_var_decl => scope = try varDecl(gz, scope, statement, block_arena_allocator, tree.alignedVarDecl(statement)),
- .@"defer" => scope = try makeDeferScope(gz.astgen, scope, statement, &block_arena.allocator, .defer_normal),
- .@"errdefer" => scope = try makeDeferScope(gz.astgen, scope, statement, &block_arena.allocator, .defer_error),
+ .@"defer" => scope = try makeDeferScope(gz.astgen, scope, statement, block_arena_allocator, .defer_normal),
+ .@"errdefer" => scope = try makeDeferScope(gz.astgen, scope, statement, block_arena_allocator, .defer_error),
.assign => try assign(gz, scope, statement),
src/Compilation.zig
@@ -412,28 +412,29 @@ pub const AllErrors = struct {
errors: *std.ArrayList(Message),
module_err_msg: Module.ErrorMsg,
) !void {
- const notes = try arena.allocator.alloc(Message, module_err_msg.notes.len);
+ const allocator = arena.getAllocator();
+ const notes = try allocator.alloc(Message, module_err_msg.notes.len);
for (notes) |*note, i| {
const module_note = module_err_msg.notes[i];
const source = try module_note.src_loc.file_scope.getSource(module.gpa);
const byte_offset = try module_note.src_loc.byteOffset(module.gpa);
const loc = std.zig.findLineColumn(source, byte_offset);
- const file_path = try module_note.src_loc.file_scope.fullPath(&arena.allocator);
+ const file_path = try module_note.src_loc.file_scope.fullPath(allocator);
note.* = .{
.src = .{
.src_path = file_path,
- .msg = try arena.allocator.dupe(u8, module_note.msg),
+ .msg = try allocator.dupe(u8, module_note.msg),
.byte_offset = byte_offset,
.line = @intCast(u32, loc.line),
.column = @intCast(u32, loc.column),
- .source_line = try arena.allocator.dupe(u8, loc.source_line),
+ .source_line = try allocator.dupe(u8, loc.source_line),
},
};
}
if (module_err_msg.src_loc.lazy == .entire_file) {
try errors.append(.{
.plain = .{
- .msg = try arena.allocator.dupe(u8, module_err_msg.msg),
+ .msg = try allocator.dupe(u8, module_err_msg.msg),
},
});
return;
@@ -441,16 +442,16 @@ pub const AllErrors = struct {
const source = try module_err_msg.src_loc.file_scope.getSource(module.gpa);
const byte_offset = try module_err_msg.src_loc.byteOffset(module.gpa);
const loc = std.zig.findLineColumn(source, byte_offset);
- const file_path = try module_err_msg.src_loc.file_scope.fullPath(&arena.allocator);
+ const file_path = try module_err_msg.src_loc.file_scope.fullPath(allocator);
try errors.append(.{
.src = .{
.src_path = file_path,
- .msg = try arena.allocator.dupe(u8, module_err_msg.msg),
+ .msg = try allocator.dupe(u8, module_err_msg.msg),
.byte_offset = byte_offset,
.line = @intCast(u32, loc.line),
.column = @intCast(u32, loc.column),
.notes = notes,
- .source_line = try arena.allocator.dupe(u8, loc.source_line),
+ .source_line = try allocator.dupe(u8, loc.source_line),
},
});
}
@@ -548,11 +549,12 @@ pub const AllErrors = struct {
msg: []const u8,
optional_children: ?AllErrors,
) !void {
- const duped_msg = try arena.allocator.dupe(u8, msg);
+ const allocator = arena.getAllocator();
+ const duped_msg = try allocator.dupe(u8, msg);
if (optional_children) |*children| {
try errors.append(.{ .plain = .{
.msg = duped_msg,
- .notes = try dupeList(children.list, &arena.allocator),
+ .notes = try dupeList(children.list, allocator),
} });
} else {
try errors.append(.{ .plain = .{ .msg = duped_msg } });
@@ -786,7 +788,7 @@ fn addPackageTableToCacheHash(
seen_table: *std.AutoHashMap(*Package, void),
hash_type: union(enum) { path_bytes, files: *Cache.Manifest },
) (error{OutOfMemory} || std.os.GetCwdError)!void {
- const allocator = &arena.allocator;
+ const allocator = arena.getAllocator();
const packages = try allocator.alloc(Package.Table.KV, pkg_table.count());
{
@@ -850,7 +852,7 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
// initialization and then is freed in deinit().
var arena_allocator = std.heap.ArenaAllocator.init(gpa);
errdefer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
// We put the `Compilation` itself in the arena. Freeing the arena will free the module.
// It's initialized later after we prepare the initialization options.
@@ -1208,7 +1210,7 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
{
var local_arena = std.heap.ArenaAllocator.init(gpa);
defer local_arena.deinit();
- var seen_table = std.AutoHashMap(*Package, void).init(&local_arena.allocator);
+ var seen_table = std.AutoHashMap(*Package, void).init(local_arena.getAllocator());
try addPackageTableToCacheHash(&hash, &local_arena, main_pkg.table, &seen_table, .path_bytes);
}
hash.add(valgrind);
@@ -2011,6 +2013,7 @@ pub fn totalErrorCount(self: *Compilation) usize {
pub fn getAllErrorsAlloc(self: *Compilation) !AllErrors {
var arena = std.heap.ArenaAllocator.init(self.gpa);
errdefer arena.deinit();
+ const arena_allocator = arena.getAllocator();
var errors = std.ArrayList(AllErrors.Message).init(self.gpa);
defer errors.deinit();
@@ -2024,8 +2027,8 @@ pub fn getAllErrorsAlloc(self: *Compilation) !AllErrors {
// C error reporting bubbling up.
try errors.append(.{
.src = .{
- .src_path = try arena.allocator.dupe(u8, c_object.src.src_path),
- .msg = try std.fmt.allocPrint(&arena.allocator, "unable to build C object: {s}", .{
+ .src_path = try arena_allocator.dupe(u8, c_object.src.src_path),
+ .msg = try std.fmt.allocPrint(arena_allocator, "unable to build C object: {s}", .{
err_msg.msg,
}),
.byte_offset = 0,
@@ -2050,7 +2053,7 @@ pub fn getAllErrorsAlloc(self: *Compilation) !AllErrors {
// must have completed successfully.
const tree = try entry.key_ptr.*.getTree(module.gpa);
assert(tree.errors.len == 0);
- try AllErrors.addZir(&arena.allocator, &errors, entry.key_ptr.*);
+ try AllErrors.addZir(arena_allocator, &errors, entry.key_ptr.*);
}
}
}
@@ -2089,7 +2092,7 @@ pub fn getAllErrorsAlloc(self: *Compilation) !AllErrors {
if (errors.items.len == 0 and self.link_error_flags.no_entry_point_found) {
try errors.append(.{
.plain = .{
- .msg = try std.fmt.allocPrint(&arena.allocator, "no entry point found", .{}),
+ .msg = try std.fmt.allocPrint(arena_allocator, "no entry point found", .{}),
},
});
}
@@ -2121,7 +2124,7 @@ pub fn getAllErrorsAlloc(self: *Compilation) !AllErrors {
assert(errors.items.len == self.totalErrorCount());
return AllErrors{
- .list = try arena.allocator.dupe(AllErrors.Message, errors.items),
+ .list = try arena_allocator.dupe(AllErrors.Message, errors.items),
.arena = arena.state,
};
}
@@ -2292,7 +2295,7 @@ fn processOneJob(comp: *Compilation, job: Job, main_progress_node: *std.Progress
var tmp_arena = std.heap.ArenaAllocator.init(gpa);
defer tmp_arena.deinit();
- const sema_arena = &tmp_arena.allocator;
+ const sema_arena = tmp_arena.getAllocator();
const sema_frame = tracy.namedFrame("sema");
var sema_frame_ended = false;
@@ -2387,7 +2390,7 @@ fn processOneJob(comp: *Compilation, job: Job, main_progress_node: *std.Progress
.decl = decl,
.fwd_decl = fwd_decl.toManaged(gpa),
.typedefs = c_codegen.TypedefMap.init(gpa),
- .typedefs_arena = &typedefs_arena.allocator,
+ .typedefs_arena = typedefs_arena.getAllocator(),
};
defer dg.fwd_decl.deinit();
defer dg.typedefs.deinit();
@@ -2841,7 +2844,7 @@ pub fn cImport(comp: *Compilation, c_src: []const u8) !CImportResult {
const digest = if (!actual_hit) digest: {
var arena_allocator = std.heap.ArenaAllocator.init(comp.gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const tmp_digest = man.hash.peek();
const tmp_dir_sub_path = try std.fs.path.join(arena, &[_][]const u8{ "o", &tmp_digest });
@@ -3096,7 +3099,7 @@ fn updateCObject(comp: *Compilation, c_object: *CObject, c_obj_prog_node: *std.P
var arena_allocator = std.heap.ArenaAllocator.init(comp.gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const c_source_basename = std.fs.path.basename(c_object.src.src_path);
@@ -4417,7 +4420,7 @@ fn updateStage1Module(comp: *Compilation, main_progress_node: *std.Progress.Node
var arena_allocator = std.heap.ArenaAllocator.init(comp.gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
// Here we use the legacy stage1 C++ compiler to compile Zig code.
const mod = comp.bin_file.options.module.?;
@@ -4454,7 +4457,7 @@ fn updateStage1Module(comp: *Compilation, main_progress_node: *std.Progress.Node
_ = try man.addFile(main_zig_file, null);
{
- var seen_table = std.AutoHashMap(*Package, void).init(&arena_allocator.allocator);
+ var seen_table = std.AutoHashMap(*Package, void).init(arena_allocator.getAllocator());
try addPackageTableToCacheHash(&man.hash, &arena_allocator, mod.main_pkg.table, &seen_table, .{ .files = &man });
}
man.hash.add(comp.bin_file.options.valgrind);
src/crash_report.zig
@@ -85,7 +85,7 @@ fn dumpStatusReport() !void {
const anal = zir_state orelse return;
// Note: We have the panic mutex here, so we can safely use the global crash heap.
var fba = std.heap.FixedBufferAllocator.init(&crash_heap);
- const allocator = &fba.allocator;
+ const allocator = fba.getAllocator();
const stderr = io.getStdErr().writer();
const block: *Sema.Block = anal.block;
src/DepTokenizer.zig
@@ -878,7 +878,7 @@ test "error prereq - continuation expecting end-of-line" {
// - tokenize input, emit textual representation, and compare to expect
fn depTokenizer(input: []const u8, expect: []const u8) !void {
var arena_allocator = std.heap.ArenaAllocator.init(std.testing.allocator);
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
defer arena_allocator.deinit();
var it: Tokenizer = .{ .bytes = input };
src/glibc.zig
@@ -65,7 +65,7 @@ pub fn loadMetaData(gpa: Allocator, zig_lib_dir: std.fs.Dir) LoadMetaDataError!*
var arena_allocator = std.heap.ArenaAllocator.init(gpa);
errdefer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
var all_versions = std.ArrayListUnmanaged(std.builtin.Version){};
var all_functions = std.ArrayListUnmanaged(Fn){};
@@ -256,7 +256,7 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void {
const gpa = comp.gpa;
var arena_allocator = std.heap.ArenaAllocator.init(gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
switch (crt_file) {
.crti_o => {
@@ -711,7 +711,7 @@ pub fn buildSharedObjects(comp: *Compilation) !void {
var arena_allocator = std.heap.ArenaAllocator.init(comp.gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const target = comp.getTarget();
const target_version = target.os.version_range.linux.glibc;
src/libcxx.zig
@@ -89,7 +89,7 @@ pub fn buildLibCXX(comp: *Compilation) !void {
var arena_allocator = std.heap.ArenaAllocator.init(comp.gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const root_name = "c++";
const output_mode = .Lib;
@@ -236,7 +236,7 @@ pub fn buildLibCXXABI(comp: *Compilation) !void {
var arena_allocator = std.heap.ArenaAllocator.init(comp.gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const root_name = "c++abi";
const output_mode = .Lib;
src/libtsan.zig
@@ -15,7 +15,7 @@ pub fn buildTsan(comp: *Compilation) !void {
var arena_allocator = std.heap.ArenaAllocator.init(comp.gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const root_name = "tsan";
const output_mode = .Lib;
src/libunwind.zig
@@ -17,7 +17,7 @@ pub fn buildStaticLib(comp: *Compilation) !void {
var arena_allocator = std.heap.ArenaAllocator.init(comp.gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const root_name = "unwind";
const output_mode = .Lib;
src/link.zig
@@ -628,7 +628,7 @@ pub const File = struct {
var arena_allocator = std.heap.ArenaAllocator.init(base.allocator);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const directory = base.options.emit.?.directory; // Just an alias to make it shorter to type.
src/main.zig
@@ -139,7 +139,7 @@ pub fn main() anyerror!void {
const gpa = gpa: {
if (!builtin.link_libc) {
gpa_need_deinit = true;
- break :gpa &general_purpose_allocator.allocator;
+ break :gpa general_purpose_allocator.getAllocator();
}
// We would prefer to use raw libc allocator here, but cannot
// use it if it won't support the alignment we need.
@@ -153,7 +153,7 @@ pub fn main() anyerror!void {
};
var arena_instance = std.heap.ArenaAllocator.init(gpa);
defer arena_instance.deinit();
- const arena = &arena_instance.allocator;
+ const arena = arena_instance.getAllocator();
const args = try process.argsAlloc(arena);
@@ -3619,7 +3619,7 @@ pub fn cmdFmt(gpa: Allocator, arena: Allocator, args: []const []const u8) !void
var errors = std.ArrayList(Compilation.AllErrors.Message).init(gpa);
defer errors.deinit();
- try Compilation.AllErrors.addZir(&arena_instance.allocator, &errors, &file);
+ try Compilation.AllErrors.addZir(arena_instance.getAllocator(), &errors, &file);
const ttyconf: std.debug.TTY.Config = switch (color) {
.auto => std.debug.detectTTYConfig(),
.on => .escape_codes,
@@ -3818,7 +3818,7 @@ fn fmtPathFile(
var errors = std.ArrayList(Compilation.AllErrors.Message).init(fmt.gpa);
defer errors.deinit();
- try Compilation.AllErrors.addZir(&arena_instance.allocator, &errors, &file);
+ try Compilation.AllErrors.addZir(arena_instance.getAllocator(), &errors, &file);
const ttyconf: std.debug.TTY.Config = switch (fmt.color) {
.auto => std.debug.detectTTYConfig(),
.on => .escape_codes,
src/mingw.zig
@@ -25,7 +25,7 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void {
}
var arena_allocator = std.heap.ArenaAllocator.init(comp.gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
switch (crt_file) {
.crt2_o => {
@@ -281,7 +281,7 @@ fn add_cc_args(
pub fn buildImportLib(comp: *Compilation, lib_name: []const u8) !void {
var arena_allocator = std.heap.ArenaAllocator.init(comp.gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const def_file_path = findDef(comp, arena, lib_name) catch |err| switch (err) {
error.FileNotFound => {
src/Module.zig
@@ -517,7 +517,7 @@ pub const Decl = struct {
pub fn finalizeNewArena(decl: *Decl, arena: *std.heap.ArenaAllocator) !void {
assert(decl.value_arena == null);
- const arena_state = try arena.allocator.create(std.heap.ArenaAllocator.State);
+ const arena_state = try arena.getAllocator().create(std.heap.ArenaAllocator.State);
arena_state.* = arena.state;
decl.value_arena = arena_state;
}
@@ -3159,10 +3159,11 @@ pub fn semaFile(mod: *Module, file: *File) SemaError!void {
const gpa = mod.gpa;
var new_decl_arena = std.heap.ArenaAllocator.init(gpa);
errdefer new_decl_arena.deinit();
+ const new_decl_arena_allocator = new_decl_arena.getAllocator();
- const struct_obj = try new_decl_arena.allocator.create(Module.Struct);
- const struct_ty = try Type.Tag.@"struct".create(&new_decl_arena.allocator, struct_obj);
- const struct_val = try Value.Tag.ty.create(&new_decl_arena.allocator, struct_ty);
+ const struct_obj = try new_decl_arena_allocator.create(Module.Struct);
+ const struct_ty = try Type.Tag.@"struct".create(new_decl_arena_allocator, struct_obj);
+ const struct_val = try Value.Tag.ty.create(new_decl_arena_allocator, struct_ty);
const ty_ty = comptime Type.initTag(.type);
struct_obj.* = .{
.owner_decl = undefined, // set below
@@ -3202,12 +3203,13 @@ pub fn semaFile(mod: *Module, file: *File) SemaError!void {
var sema_arena = std.heap.ArenaAllocator.init(gpa);
defer sema_arena.deinit();
+ const sema_arena_allocator = sema_arena.getAllocator();
var sema: Sema = .{
.mod = mod,
.gpa = gpa,
- .arena = &sema_arena.allocator,
- .perm_arena = &new_decl_arena.allocator,
+ .arena = sema_arena_allocator,
+ .perm_arena = new_decl_arena_allocator,
.code = file.zir,
.owner_decl = new_decl,
.func = null,
@@ -3216,7 +3218,7 @@ pub fn semaFile(mod: *Module, file: *File) SemaError!void {
};
defer sema.deinit();
- var wip_captures = try WipCaptureScope.init(gpa, &new_decl_arena.allocator, null);
+ var wip_captures = try WipCaptureScope.init(gpa, new_decl_arena_allocator, null);
defer wip_captures.deinit();
var block_scope: Sema.Block = .{
@@ -3265,15 +3267,17 @@ fn semaDecl(mod: *Module, decl: *Decl) !bool {
// We need the memory for the Type to go into the arena for the Decl
var decl_arena = std.heap.ArenaAllocator.init(gpa);
errdefer decl_arena.deinit();
+ const decl_arena_allocator = decl_arena.getAllocator();
var analysis_arena = std.heap.ArenaAllocator.init(gpa);
defer analysis_arena.deinit();
+ const analysis_arena_allocator = analysis_arena.getAllocator();
var sema: Sema = .{
.mod = mod,
.gpa = gpa,
- .arena = &analysis_arena.allocator,
- .perm_arena = &decl_arena.allocator,
+ .arena = analysis_arena_allocator,
+ .perm_arena = decl_arena_allocator,
.code = zir,
.owner_decl = decl,
.func = null,
@@ -3296,7 +3300,7 @@ fn semaDecl(mod: *Module, decl: *Decl) !bool {
}
log.debug("semaDecl {*} ({s})", .{ decl, decl.name });
- var wip_captures = try WipCaptureScope.init(gpa, &decl_arena.allocator, decl.src_scope);
+ var wip_captures = try WipCaptureScope.init(gpa, decl_arena_allocator, decl.src_scope);
defer wip_captures.deinit();
var block_scope: Sema.Block = .{
@@ -3356,7 +3360,7 @@ fn semaDecl(mod: *Module, decl: *Decl) !bool {
// not the struct itself.
try sema.resolveTypeLayout(&block_scope, src, decl_tv.ty);
- const decl_arena_state = try decl_arena.allocator.create(std.heap.ArenaAllocator.State);
+ const decl_arena_state = try decl_arena_allocator.create(std.heap.ArenaAllocator.State);
if (decl.is_usingnamespace) {
const ty_ty = Type.initTag(.type);
@@ -3370,7 +3374,7 @@ fn semaDecl(mod: *Module, decl: *Decl) !bool {
}
decl.ty = ty_ty;
- decl.val = try Value.Tag.ty.create(&decl_arena.allocator, ty);
+ decl.val = try Value.Tag.ty.create(decl_arena_allocator, ty);
decl.align_val = Value.initTag(.null_value);
decl.linksection_val = Value.initTag(.null_value);
decl.has_tv = true;
@@ -3400,10 +3404,10 @@ fn semaDecl(mod: *Module, decl: *Decl) !bool {
decl.clearValues(gpa);
}
- decl.ty = try decl_tv.ty.copy(&decl_arena.allocator);
- decl.val = try decl_tv.val.copy(&decl_arena.allocator);
- decl.align_val = try align_val.copy(&decl_arena.allocator);
- decl.linksection_val = try linksection_val.copy(&decl_arena.allocator);
+ decl.ty = try decl_tv.ty.copy(decl_arena_allocator);
+ decl.val = try decl_tv.val.copy(decl_arena_allocator);
+ decl.align_val = try align_val.copy(decl_arena_allocator);
+ decl.linksection_val = try linksection_val.copy(decl_arena_allocator);
decl.@"addrspace" = address_space;
decl.has_tv = true;
decl.owns_tv = owns_tv;
@@ -3453,7 +3457,7 @@ fn semaDecl(mod: *Module, decl: *Decl) !bool {
decl.owns_tv = true;
queue_linker_work = true;
- const copied_init = try variable.init.copy(&decl_arena.allocator);
+ const copied_init = try variable.init.copy(decl_arena_allocator);
variable.init = copied_init;
}
},
@@ -3476,10 +3480,10 @@ fn semaDecl(mod: *Module, decl: *Decl) !bool {
},
}
- decl.ty = try decl_tv.ty.copy(&decl_arena.allocator);
- decl.val = try decl_tv.val.copy(&decl_arena.allocator);
- decl.align_val = try align_val.copy(&decl_arena.allocator);
- decl.linksection_val = try linksection_val.copy(&decl_arena.allocator);
+ decl.ty = try decl_tv.ty.copy(decl_arena_allocator);
+ decl.val = try decl_tv.val.copy(decl_arena_allocator);
+ decl.align_val = try align_val.copy(decl_arena_allocator);
+ decl.linksection_val = try linksection_val.copy(decl_arena_allocator);
decl.@"addrspace" = address_space;
decl.has_tv = true;
decl_arena_state.* = decl_arena.state;
@@ -4128,12 +4132,13 @@ pub fn analyzeFnBody(mod: *Module, decl: *Decl, func: *Fn, arena: Allocator) Sem
// Use the Decl's arena for captured values.
var decl_arena = decl.value_arena.?.promote(gpa);
defer decl.value_arena.?.* = decl_arena.state;
+ const decl_arena_allocator = decl_arena.getAllocator();
var sema: Sema = .{
.mod = mod,
.gpa = gpa,
.arena = arena,
- .perm_arena = &decl_arena.allocator,
+ .perm_arena = decl_arena_allocator,
.code = decl.getFileScope().zir,
.owner_decl = decl,
.func = func,
@@ -4147,7 +4152,7 @@ pub fn analyzeFnBody(mod: *Module, decl: *Decl, func: *Fn, arena: Allocator) Sem
try sema.air_extra.ensureTotalCapacity(gpa, reserved_count);
sema.air_extra.items.len += reserved_count;
- var wip_captures = try WipCaptureScope.init(gpa, &decl_arena.allocator, decl.src_scope);
+ var wip_captures = try WipCaptureScope.init(gpa, decl_arena_allocator, decl.src_scope);
defer wip_captures.deinit();
var inner_block: Sema.Block = .{
@@ -4751,7 +4756,7 @@ pub fn populateTestFunctions(mod: *Module) !void {
// decl reference it as a slice.
var new_decl_arena = std.heap.ArenaAllocator.init(gpa);
errdefer new_decl_arena.deinit();
- const arena = &new_decl_arena.allocator;
+ const arena = new_decl_arena.getAllocator();
const test_fn_vals = try arena.alloc(Value, mod.test_functions.count());
const array_decl = try mod.createAnonymousDeclFromDecl(decl, decl.src_namespace, null, .{
@@ -4770,10 +4775,10 @@ pub fn populateTestFunctions(mod: *Module) !void {
const test_name_decl = n: {
var name_decl_arena = std.heap.ArenaAllocator.init(gpa);
errdefer name_decl_arena.deinit();
- const bytes = try name_decl_arena.allocator.dupe(u8, test_name_slice);
+ const bytes = try arena.dupe(u8, test_name_slice);
const test_name_decl = try mod.createAnonymousDeclFromDecl(array_decl, array_decl.src_namespace, null, .{
- .ty = try Type.Tag.array_u8.create(&name_decl_arena.allocator, bytes.len),
- .val = try Value.Tag.bytes.create(&name_decl_arena.allocator, bytes),
+ .ty = try Type.Tag.array_u8.create(arena, bytes.len),
+ .val = try Value.Tag.bytes.create(arena, bytes),
});
try test_name_decl.finalizeNewArena(&name_decl_arena);
break :n test_name_decl;
@@ -4802,7 +4807,7 @@ pub fn populateTestFunctions(mod: *Module) !void {
{
var new_decl_arena = std.heap.ArenaAllocator.init(gpa);
errdefer new_decl_arena.deinit();
- const arena = &new_decl_arena.allocator;
+ const arena = new_decl_arena.getAllocator();
// This copy accesses the old Decl Type/Value so it must be done before `clearValues`.
const new_ty = try Type.Tag.const_slice.create(arena, try tmp_test_fn_ty.copy(arena));
src/musl.zig
@@ -25,7 +25,7 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void {
const gpa = comp.gpa;
var arena_allocator = std.heap.ArenaAllocator.init(gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
switch (crt_file) {
.crti_o => {
src/print_air.zig
@@ -47,7 +47,7 @@ pub fn dump(gpa: Allocator, air: Air, zir: Zir, liveness: Liveness) void {
var writer: Writer = .{
.gpa = gpa,
- .arena = &arena.allocator,
+ .arena = arena.getAllocator(),
.air = air,
.zir = zir,
.liveness = liveness,
src/print_zir.zig
@@ -19,7 +19,7 @@ pub fn renderAsTextToFile(
var writer: Writer = .{
.gpa = gpa,
- .arena = &arena.allocator,
+ .arena = arena.getAllocator(),
.file = scope_file,
.code = scope_file.zir,
.indent = 0,
@@ -74,7 +74,7 @@ pub fn renderInstructionContext(
var writer: Writer = .{
.gpa = gpa,
- .arena = &arena.allocator,
+ .arena = arena.getAllocator(),
.file = scope_file,
.code = scope_file.zir,
.indent = if (indent < 2) 2 else indent,
@@ -106,7 +106,7 @@ pub fn renderSingleInstruction(
var writer: Writer = .{
.gpa = gpa,
- .arena = &arena.allocator,
+ .arena = arena.getAllocator(),
.file = scope_file,
.code = scope_file.zir,
.indent = indent,
src/Sema.zig
@@ -418,7 +418,7 @@ pub const Block = struct {
finished: bool,
pub fn arena(wad: *WipAnonDecl) Allocator {
- return &wad.new_decl_arena.allocator;
+ return wad.new_decl_arena.getAllocator();
}
pub fn deinit(wad: *WipAnonDecl) void {
@@ -1594,10 +1594,11 @@ fn zirStructDecl(
var new_decl_arena = std.heap.ArenaAllocator.init(sema.gpa);
errdefer new_decl_arena.deinit();
+ const new_decl_arena_allocator = new_decl_arena.getAllocator();
- const struct_obj = try new_decl_arena.allocator.create(Module.Struct);
- const struct_ty = try Type.Tag.@"struct".create(&new_decl_arena.allocator, struct_obj);
- const struct_val = try Value.Tag.ty.create(&new_decl_arena.allocator, struct_ty);
+ const struct_obj = try new_decl_arena_allocator.create(Module.Struct);
+ const struct_ty = try Type.Tag.@"struct".create(new_decl_arena_allocator, struct_obj);
+ const struct_val = try Value.Tag.ty.create(new_decl_arena_allocator, struct_ty);
const type_name = try sema.createTypeName(block, small.name_strategy);
const new_decl = try sema.mod.createAnonymousDeclNamed(block, .{
.ty = Type.type,
@@ -1698,15 +1699,16 @@ fn zirEnumDecl(
var new_decl_arena = std.heap.ArenaAllocator.init(gpa);
errdefer new_decl_arena.deinit();
+ const new_decl_arena_allocator = new_decl_arena.getAllocator();
- const enum_obj = try new_decl_arena.allocator.create(Module.EnumFull);
- const enum_ty_payload = try new_decl_arena.allocator.create(Type.Payload.EnumFull);
+ const enum_obj = try new_decl_arena_allocator.create(Module.EnumFull);
+ const enum_ty_payload = try new_decl_arena_allocator.create(Type.Payload.EnumFull);
enum_ty_payload.* = .{
.base = .{ .tag = if (small.nonexhaustive) .enum_nonexhaustive else .enum_full },
.data = enum_obj,
};
const enum_ty = Type.initPayload(&enum_ty_payload.base);
- const enum_val = try Value.Tag.ty.create(&new_decl_arena.allocator, enum_ty);
+ const enum_val = try Value.Tag.ty.create(new_decl_arena_allocator, enum_ty);
const type_name = try sema.createTypeName(block, small.name_strategy);
const new_decl = try mod.createAnonymousDeclNamed(block, .{
.ty = Type.type,
@@ -1790,17 +1792,17 @@ fn zirEnumDecl(
break :blk try sema.resolveType(block, src, tag_type_ref);
}
const bits = std.math.log2_int_ceil(usize, fields_len);
- break :blk try Type.Tag.int_unsigned.create(&new_decl_arena.allocator, bits);
+ break :blk try Type.Tag.int_unsigned.create(new_decl_arena_allocator, bits);
};
enum_obj.tag_ty = tag_ty;
}
- try enum_obj.fields.ensureTotalCapacity(&new_decl_arena.allocator, fields_len);
+ try enum_obj.fields.ensureTotalCapacity(new_decl_arena_allocator, fields_len);
const any_values = for (sema.code.extra[body_end..][0..bit_bags_count]) |bag| {
if (bag != 0) break true;
} else false;
if (any_values) {
- try enum_obj.values.ensureTotalCapacityContext(&new_decl_arena.allocator, fields_len, .{
+ try enum_obj.values.ensureTotalCapacityContext(new_decl_arena_allocator, fields_len, .{
.ty = enum_obj.tag_ty,
});
}
@@ -1820,7 +1822,7 @@ fn zirEnumDecl(
extra_index += 1;
// This string needs to outlive the ZIR code.
- const field_name = try new_decl_arena.allocator.dupe(u8, field_name_zir);
+ const field_name = try new_decl_arena_allocator.dupe(u8, field_name_zir);
const gop = enum_obj.fields.getOrPutAssumeCapacity(field_name);
if (gop.found_existing) {
@@ -1843,12 +1845,12 @@ fn zirEnumDecl(
// that points to this default value expression rather than the struct.
// But only resolve the source location if we need to emit a compile error.
const tag_val = (try sema.resolveInstConst(block, src, tag_val_ref)).val;
- const copied_tag_val = try tag_val.copy(&new_decl_arena.allocator);
+ const copied_tag_val = try tag_val.copy(new_decl_arena_allocator);
enum_obj.values.putAssumeCapacityNoClobberContext(copied_tag_val, {}, .{
.ty = enum_obj.tag_ty,
});
} else if (any_values) {
- const tag_val = try Value.Tag.int_u64.create(&new_decl_arena.allocator, field_i);
+ const tag_val = try Value.Tag.int_u64.create(new_decl_arena_allocator, field_i);
enum_obj.values.putAssumeCapacityNoClobberContext(tag_val, {}, .{ .ty = enum_obj.tag_ty });
}
}
@@ -1887,16 +1889,17 @@ fn zirUnionDecl(
var new_decl_arena = std.heap.ArenaAllocator.init(sema.gpa);
errdefer new_decl_arena.deinit();
+ const new_decl_arena_allocator = new_decl_arena.getAllocator();
- const union_obj = try new_decl_arena.allocator.create(Module.Union);
+ const union_obj = try new_decl_arena_allocator.create(Module.Union);
const type_tag: Type.Tag = if (small.has_tag_type or small.auto_enum_tag) .union_tagged else .@"union";
- const union_payload = try new_decl_arena.allocator.create(Type.Payload.Union);
+ const union_payload = try new_decl_arena_allocator.create(Type.Payload.Union);
union_payload.* = .{
.base = .{ .tag = type_tag },
.data = union_obj,
};
const union_ty = Type.initPayload(&union_payload.base);
- const union_val = try Value.Tag.ty.create(&new_decl_arena.allocator, union_ty);
+ const union_val = try Value.Tag.ty.create(new_decl_arena_allocator, union_ty);
const type_name = try sema.createTypeName(block, small.name_strategy);
const new_decl = try sema.mod.createAnonymousDeclNamed(block, .{
.ty = Type.type,
@@ -1955,15 +1958,16 @@ fn zirOpaqueDecl(
var new_decl_arena = std.heap.ArenaAllocator.init(gpa);
errdefer new_decl_arena.deinit();
+ const new_decl_arena_allocator = new_decl_arena.getAllocator();
- const opaque_obj = try new_decl_arena.allocator.create(Module.Opaque);
- const opaque_ty_payload = try new_decl_arena.allocator.create(Type.Payload.Opaque);
+ const opaque_obj = try new_decl_arena_allocator.create(Module.Opaque);
+ const opaque_ty_payload = try new_decl_arena_allocator.create(Type.Payload.Opaque);
opaque_ty_payload.* = .{
.base = .{ .tag = .@"opaque" },
.data = opaque_obj,
};
const opaque_ty = Type.initPayload(&opaque_ty_payload.base);
- const opaque_val = try Value.Tag.ty.create(&new_decl_arena.allocator, opaque_ty);
+ const opaque_val = try Value.Tag.ty.create(new_decl_arena_allocator, opaque_ty);
const type_name = try sema.createTypeName(block, small.name_strategy);
const new_decl = try mod.createAnonymousDeclNamed(block, .{
.ty = Type.type,
@@ -2008,10 +2012,11 @@ fn zirErrorSetDecl(
var new_decl_arena = std.heap.ArenaAllocator.init(gpa);
errdefer new_decl_arena.deinit();
+ const new_decl_arena_allocator = new_decl_arena.getAllocator();
- const error_set = try new_decl_arena.allocator.create(Module.ErrorSet);
- const error_set_ty = try Type.Tag.error_set.create(&new_decl_arena.allocator, error_set);
- const error_set_val = try Value.Tag.ty.create(&new_decl_arena.allocator, error_set_ty);
+ const error_set = try new_decl_arena_allocator.create(Module.ErrorSet);
+ const error_set_ty = try Type.Tag.error_set.create(new_decl_arena_allocator, error_set);
+ const error_set_val = try Value.Tag.ty.create(new_decl_arena_allocator, error_set_ty);
const type_name = try sema.createTypeName(block, name_strategy);
const new_decl = try sema.mod.createAnonymousDeclNamed(block, .{
.ty = Type.type,
@@ -2019,9 +2024,9 @@ fn zirErrorSetDecl(
}, type_name);
new_decl.owns_tv = true;
errdefer sema.mod.abortAnonDecl(new_decl);
- const names = try new_decl_arena.allocator.alloc([]const u8, fields.len);
+ const names = try new_decl_arena_allocator.alloc([]const u8, fields.len);
for (fields) |str_index, i| {
- names[i] = try new_decl_arena.allocator.dupe(u8, sema.code.nullTerminatedString(str_index));
+ names[i] = try new_decl_arena_allocator.dupe(u8, sema.code.nullTerminatedString(str_index));
}
error_set.* = .{
.owner_decl = new_decl,
@@ -3935,7 +3940,7 @@ fn analyzeCall(
{
var arena_allocator = std.heap.ArenaAllocator.init(gpa);
errdefer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
for (memoized_call_key.args) |*arg| {
arg.* = try arg.*.copy(arena);
@@ -4069,6 +4074,7 @@ fn analyzeCall(
var new_decl_arena = std.heap.ArenaAllocator.init(sema.gpa);
errdefer new_decl_arena.deinit();
+ const new_decl_arena_allocator = new_decl_arena.getAllocator();
// Re-run the block that creates the function, with the comptime parameters
// pre-populated inside `inst_map`. This causes `param_comptime` and
@@ -4078,13 +4084,13 @@ fn analyzeCall(
.mod = mod,
.gpa = gpa,
.arena = sema.arena,
- .perm_arena = &new_decl_arena.allocator,
+ .perm_arena = new_decl_arena_allocator,
.code = fn_zir,
.owner_decl = new_decl,
.func = null,
.fn_ret_ty = Type.void,
.owner_func = null,
- .comptime_args = try new_decl_arena.allocator.alloc(TypedValue, uncasted_args.len),
+ .comptime_args = try new_decl_arena_allocator.alloc(TypedValue, uncasted_args.len),
.comptime_args_fn_inst = module_fn.zir_body_inst,
.preallocated_new_func = new_module_func,
};
@@ -4168,7 +4174,7 @@ fn analyzeCall(
else => continue,
}
const arg = child_sema.inst_map.get(inst).?;
- const copied_arg_ty = try child_sema.typeOf(arg).copy(&new_decl_arena.allocator);
+ const copied_arg_ty = try child_sema.typeOf(arg).copy(new_decl_arena_allocator);
if (child_sema.resolveMaybeUndefValAllowVariables(
&child_block,
.unneeded,
@@ -4176,7 +4182,7 @@ fn analyzeCall(
) catch unreachable) |arg_val| {
child_sema.comptime_args[arg_i] = .{
.ty = copied_arg_ty,
- .val = try arg_val.copy(&new_decl_arena.allocator),
+ .val = try arg_val.copy(new_decl_arena_allocator),
};
} else {
child_sema.comptime_args[arg_i] = .{
@@ -4191,8 +4197,8 @@ fn analyzeCall(
try wip_captures.finalize();
// Populate the Decl ty/val with the function and its type.
- new_decl.ty = try child_sema.typeOf(new_func_inst).copy(&new_decl_arena.allocator);
- new_decl.val = try Value.Tag.function.create(&new_decl_arena.allocator, new_func);
+ new_decl.ty = try child_sema.typeOf(new_func_inst).copy(new_decl_arena_allocator);
+ new_decl.val = try Value.Tag.function.create(new_decl_arena_allocator, new_func);
new_decl.analysis = .complete;
log.debug("generic function '{s}' instantiated with type {}", .{
@@ -6047,8 +6053,8 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
defer arena.deinit();
const target = sema.mod.getTarget();
- const min_int = try operand_ty.minInt(&arena.allocator, target);
- const max_int = try operand_ty.maxInt(&arena.allocator, target);
+ const min_int = try operand_ty.minInt(arena.getAllocator(), target);
+ const max_int = try operand_ty.maxInt(arena.getAllocator(), target);
if (try range_set.spans(min_int, max_int, operand_ty)) {
if (special_prong == .@"else") {
return sema.fail(
@@ -12795,7 +12801,7 @@ const ComptimePtrMutationKit = struct {
fn beginArena(self: *ComptimePtrMutationKit, gpa: Allocator) Allocator {
self.decl_arena = self.decl_ref_mut.decl.value_arena.?.promote(gpa);
- return &self.decl_arena.allocator;
+ return self.decl_arena.getAllocator();
}
fn finishArena(self: *ComptimePtrMutationKit) void {
@@ -14287,6 +14293,7 @@ fn semaStructFields(
var decl_arena = decl.value_arena.?.promote(gpa);
defer decl.value_arena.?.* = decl_arena.state;
+ const decl_arena_allocator = decl_arena.getAllocator();
var analysis_arena = std.heap.ArenaAllocator.init(gpa);
defer analysis_arena.deinit();
@@ -14294,8 +14301,8 @@ fn semaStructFields(
var sema: Sema = .{
.mod = mod,
.gpa = gpa,
- .arena = &analysis_arena.allocator,
- .perm_arena = &decl_arena.allocator,
+ .arena = analysis_arena.getAllocator(),
+ .perm_arena = decl_arena_allocator,
.code = zir,
.owner_decl = decl,
.func = null,
@@ -14304,7 +14311,7 @@ fn semaStructFields(
};
defer sema.deinit();
- var wip_captures = try WipCaptureScope.init(gpa, &decl_arena.allocator, decl.src_scope);
+ var wip_captures = try WipCaptureScope.init(gpa, decl_arena_allocator, decl.src_scope);
defer wip_captures.deinit();
var block_scope: Block = .{
@@ -14328,7 +14335,7 @@ fn semaStructFields(
try wip_captures.finalize();
- try struct_obj.fields.ensureTotalCapacity(&decl_arena.allocator, fields_len);
+ try struct_obj.fields.ensureTotalCapacity(decl_arena_allocator, fields_len);
const bits_per_field = 4;
const fields_per_u32 = 32 / bits_per_field;
@@ -14359,7 +14366,7 @@ fn semaStructFields(
extra_index += 1;
// This string needs to outlive the ZIR code.
- const field_name = try decl_arena.allocator.dupe(u8, field_name_zir);
+ const field_name = try decl_arena_allocator.dupe(u8, field_name_zir);
const field_ty: Type = if (field_type_ref == .none)
Type.initTag(.noreturn)
else
@@ -14371,7 +14378,7 @@ fn semaStructFields(
const gop = struct_obj.fields.getOrPutAssumeCapacity(field_name);
assert(!gop.found_existing);
gop.value_ptr.* = .{
- .ty = try field_ty.copy(&decl_arena.allocator),
+ .ty = try field_ty.copy(decl_arena_allocator),
.abi_align = Value.initTag(.abi_align_default),
.default_val = Value.initTag(.unreachable_value),
.is_comptime = is_comptime,
@@ -14385,7 +14392,7 @@ fn semaStructFields(
// that points to this alignment expression rather than the struct.
// But only resolve the source location if we need to emit a compile error.
const abi_align_val = (try sema.resolveInstConst(&block_scope, src, align_ref)).val;
- gop.value_ptr.abi_align = try abi_align_val.copy(&decl_arena.allocator);
+ gop.value_ptr.abi_align = try abi_align_val.copy(decl_arena_allocator);
}
if (has_default) {
const default_ref = @intToEnum(Zir.Inst.Ref, zir.extra[extra_index]);
@@ -14396,7 +14403,7 @@ fn semaStructFields(
// But only resolve the source location if we need to emit a compile error.
const default_val = (try sema.resolveMaybeUndefVal(&block_scope, src, default_inst)) orelse
return sema.failWithNeededComptime(&block_scope, src);
- gop.value_ptr.default_val = try default_val.copy(&decl_arena.allocator);
+ gop.value_ptr.default_val = try default_val.copy(decl_arena_allocator);
}
}
}
@@ -14454,6 +14461,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
var decl_arena = union_obj.owner_decl.value_arena.?.promote(gpa);
defer union_obj.owner_decl.value_arena.?.* = decl_arena.state;
+ const decl_arena_allocator = decl_arena.getAllocator();
var analysis_arena = std.heap.ArenaAllocator.init(gpa);
defer analysis_arena.deinit();
@@ -14461,8 +14469,8 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
var sema: Sema = .{
.mod = mod,
.gpa = gpa,
- .arena = &analysis_arena.allocator,
- .perm_arena = &decl_arena.allocator,
+ .arena = analysis_arena.getAllocator(),
+ .perm_arena = decl_arena_allocator,
.code = zir,
.owner_decl = decl,
.func = null,
@@ -14471,7 +14479,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
};
defer sema.deinit();
- var wip_captures = try WipCaptureScope.init(gpa, &decl_arena.allocator, decl.src_scope);
+ var wip_captures = try WipCaptureScope.init(gpa, decl_arena_allocator, decl.src_scope);
defer wip_captures.deinit();
var block_scope: Block = .{
@@ -14495,7 +14503,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
try wip_captures.finalize();
- try union_obj.fields.ensureTotalCapacity(&decl_arena.allocator, fields_len);
+ try union_obj.fields.ensureTotalCapacity(decl_arena_allocator, fields_len);
var int_tag_ty: Type = undefined;
var enum_field_names: ?*Module.EnumNumbered.NameMap = null;
@@ -14571,7 +14579,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
}
// This string needs to outlive the ZIR code.
- const field_name = try decl_arena.allocator.dupe(u8, field_name_zir);
+ const field_name = try decl_arena_allocator.dupe(u8, field_name_zir);
if (enum_field_names) |set| {
set.putAssumeCapacity(field_name, {});
}
@@ -14589,7 +14597,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
const gop = union_obj.fields.getOrPutAssumeCapacity(field_name);
assert(!gop.found_existing);
gop.value_ptr.* = .{
- .ty = try field_ty.copy(&decl_arena.allocator),
+ .ty = try field_ty.copy(decl_arena_allocator),
.abi_align = Value.initTag(.abi_align_default),
};
@@ -14598,7 +14606,7 @@ fn semaUnionFields(mod: *Module, union_obj: *Module.Union) CompileError!void {
// that points to this alignment expression rather than the struct.
// But only resolve the source location if we need to emit a compile error.
const abi_align_val = (try sema.resolveInstConst(&block_scope, src, align_ref)).val;
- gop.value_ptr.abi_align = try abi_align_val.copy(&decl_arena.allocator);
+ gop.value_ptr.abi_align = try abi_align_val.copy(decl_arena_allocator);
} else {
gop.value_ptr.abi_align = Value.initTag(.abi_align_default);
}
@@ -14615,15 +14623,16 @@ fn generateUnionTagTypeNumbered(
var new_decl_arena = std.heap.ArenaAllocator.init(sema.gpa);
errdefer new_decl_arena.deinit();
+ const new_decl_arena_allocator = new_decl_arena.getAllocator();
- const enum_obj = try new_decl_arena.allocator.create(Module.EnumNumbered);
- const enum_ty_payload = try new_decl_arena.allocator.create(Type.Payload.EnumNumbered);
+ const enum_obj = try new_decl_arena_allocator.create(Module.EnumNumbered);
+ const enum_ty_payload = try new_decl_arena_allocator.create(Type.Payload.EnumNumbered);
enum_ty_payload.* = .{
.base = .{ .tag = .enum_numbered },
.data = enum_obj,
};
const enum_ty = Type.initPayload(&enum_ty_payload.base);
- const enum_val = try Value.Tag.ty.create(&new_decl_arena.allocator, enum_ty);
+ const enum_val = try Value.Tag.ty.create(new_decl_arena_allocator, enum_ty);
// TODO better type name
const new_decl = try mod.createAnonymousDecl(block, .{
.ty = Type.type,
@@ -14640,8 +14649,8 @@ fn generateUnionTagTypeNumbered(
.node_offset = 0,
};
// Here we pre-allocate the maps using the decl arena.
- try enum_obj.fields.ensureTotalCapacity(&new_decl_arena.allocator, fields_len);
- try enum_obj.values.ensureTotalCapacityContext(&new_decl_arena.allocator, fields_len, .{ .ty = int_ty });
+ try enum_obj.fields.ensureTotalCapacity(new_decl_arena_allocator, fields_len);
+ try enum_obj.values.ensureTotalCapacityContext(new_decl_arena_allocator, fields_len, .{ .ty = int_ty });
try new_decl.finalizeNewArena(&new_decl_arena);
return enum_ty;
}
@@ -14651,15 +14660,16 @@ fn generateUnionTagTypeSimple(sema: *Sema, block: *Block, fields_len: u32) !Type
var new_decl_arena = std.heap.ArenaAllocator.init(sema.gpa);
errdefer new_decl_arena.deinit();
+ const new_decl_arena_allocator = new_decl_arena.getAllocator();
- const enum_obj = try new_decl_arena.allocator.create(Module.EnumSimple);
- const enum_ty_payload = try new_decl_arena.allocator.create(Type.Payload.EnumSimple);
+ const enum_obj = try new_decl_arena_allocator.create(Module.EnumSimple);
+ const enum_ty_payload = try new_decl_arena_allocator.create(Type.Payload.EnumSimple);
enum_ty_payload.* = .{
.base = .{ .tag = .enum_simple },
.data = enum_obj,
};
const enum_ty = Type.initPayload(&enum_ty_payload.base);
- const enum_val = try Value.Tag.ty.create(&new_decl_arena.allocator, enum_ty);
+ const enum_val = try Value.Tag.ty.create(new_decl_arena_allocator, enum_ty);
// TODO better type name
const new_decl = try mod.createAnonymousDecl(block, .{
.ty = Type.type,
@@ -14674,7 +14684,7 @@ fn generateUnionTagTypeSimple(sema: *Sema, block: *Block, fields_len: u32) !Type
.node_offset = 0,
};
// Here we pre-allocate the maps using the decl arena.
- try enum_obj.fields.ensureTotalCapacity(&new_decl_arena.allocator, fields_len);
+ try enum_obj.fields.ensureTotalCapacity(new_decl_arena_allocator, fields_len);
try new_decl.finalizeNewArena(&new_decl_arena);
return enum_ty;
}
src/stage1.zig
@@ -38,7 +38,7 @@ pub fn main(argc: c_int, argv: [*][*:0]u8) callconv(.C) c_int {
const gpa = std.heap.c_allocator;
var arena_instance = std.heap.ArenaAllocator.init(gpa);
defer arena_instance.deinit();
- const arena = &arena_instance.allocator;
+ const arena = arena_instance.getAllocator();
const args = arena.alloc([]const u8, @intCast(usize, argc)) catch fatal("{s}", .{"OutOfMemory"});
for (args) |*arg, i| {
src/test.zig
@@ -692,7 +692,7 @@ pub const TestContext = struct {
var arena_allocator = std.heap.ArenaAllocator.init(allocator);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
var tmp = std.testing.tmpDir(.{});
defer tmp.cleanup();
src/translate_c.zig
@@ -373,13 +373,14 @@ pub fn translate(
// from this function.
var arena = std.heap.ArenaAllocator.init(gpa);
errdefer arena.deinit();
+ const arena_allocator = arena.getAllocator();
var context = Context{
.gpa = gpa,
- .arena = &arena.allocator,
+ .arena = arena_allocator,
.source_manager = ast_unit.getSourceManager(),
.alias_list = AliasList.init(gpa),
- .global_scope = try arena.allocator.create(Scope.Root),
+ .global_scope = try arena_allocator.create(Scope.Root),
.clang_context = ast_unit.getASTContext(),
.pattern_list = try PatternList.init(gpa),
};
src/wasi_libc.zig
@@ -67,7 +67,7 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void {
const gpa = comp.gpa;
var arena_allocator = std.heap.ArenaAllocator.init(gpa);
defer arena_allocator.deinit();
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
switch (crt_file) {
.crt1_reactor_o => {
test/standalone/brace_expansion/main.zig
@@ -16,7 +16,7 @@ const Token = union(enum) {
};
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
-var global_allocator = &gpa.allocator;
+const global_allocator = gpa.getAllocator();
fn tokenize(input: []const u8) !ArrayList(Token) {
const State = enum {
test/standalone/cat/main.zig
@@ -8,7 +8,7 @@ const warn = std.log.warn;
pub fn main() !void {
var arena_instance = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena_instance.deinit();
- const arena = &arena_instance.allocator;
+ const arena = arena_instance.getAllocator();
const args = try process.argsAlloc(arena);
test/cli.zig
@@ -16,7 +16,7 @@ pub fn main() !void {
// skip my own exe name
_ = arg_it.skip();
- a = &arena.allocator;
+ a = arena.getAllocator();
const zig_exe_rel = try (arg_it.next(a) orelse {
std.debug.print("Expected first argument to be path to zig compiler\n", .{});
test/compare_output.zig
@@ -491,7 +491,7 @@ pub fn addCases(cases: *tests.CompareOutputContext) void {
\\pub fn main() !void {
\\ var allocator_buf: [10]u8 = undefined;
\\ var fixedBufferAllocator = std.mem.validationWrap(std.heap.FixedBufferAllocator.init(&allocator_buf));
- \\ const allocator = &std.heap.loggingAllocator(&fixedBufferAllocator.allocator).allocator;
+ \\ const allocator = std.heap.loggingAllocator(fixedBufferAllocator.getAllocator()).getAllocator();
\\
\\ var a = try allocator.alloc(u8, 10);
\\ a = allocator.shrink(a, 5);
test/compile_errors.zig
@@ -6550,9 +6550,9 @@ pub fn addCases(ctx: *TestContext) !void {
ctx.objErrStage1("method call with first arg type wrong container",
\\pub const List = struct {
\\ len: usize,
- \\ allocator: *Allocator,
+ \\ allocator: Allocator,
\\
- \\ pub fn init(allocator: *Allocator) List {
+ \\ pub fn init(allocator: Allocator) List {
\\ return List {
\\ .len = 0,
\\ .allocator = allocator,
@@ -6573,7 +6573,7 @@ pub fn addCases(ctx: *TestContext) !void {
\\ x.init();
\\}
, &[_][]const u8{
- "tmp.zig:23:5: error: expected type '*Allocator', found '*List'",
+ "tmp.zig:23:5: error: expected type 'Allocator', found '*List'",
});
ctx.objErrStage1("binary not on number literal",
@@ -7569,7 +7569,7 @@ pub fn addCases(ctx: *TestContext) !void {
\\
\\export fn entry() void {
\\ const a = MdNode.Header {
- \\ .text = MdText.init(&std.testing.allocator),
+ \\ .text = MdText.init(std.testing.allocator),
\\ .weight = HeaderWeight.H1,
\\ };
\\ _ = a;
tools/gen_spirv_spec.zig
@@ -4,7 +4,7 @@ const g = @import("spirv/grammar.zig");
pub fn main() !void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
- const allocator = &arena.allocator;
+ const allocator = arena.getAllocator();
const args = try std.process.argsAlloc(allocator);
if (args.len != 2) {
tools/gen_stubs.zig
@@ -25,7 +25,7 @@ pub fn main() !void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
- const ally = &arena.allocator;
+ const ally = arena.getAllocator();
var symbols = std.ArrayList(Symbol).init(ally);
var sections = std.ArrayList([]const u8).init(ally);
tools/merge_anal_dumps.zig
@@ -9,7 +9,7 @@ pub fn main() anyerror!void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
- const allocator = &arena.allocator;
+ const allocator = arena.getAllocator();
const args = try std.process.argsAlloc(allocator);
tools/process_headers.zig
@@ -284,7 +284,7 @@ const LibCVendor = enum {
pub fn main() !void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
- const allocator = &arena.allocator;
+ const allocator = arena.getAllocator();
const args = try std.process.argsAlloc(allocator);
var search_paths = std.ArrayList([]const u8).init(allocator);
var opt_out_dir: ?[]const u8 = null;
tools/update-license-headers.zig
@@ -10,7 +10,7 @@ pub fn main() !void {
defer root_node.end();
var arena_allocator = std.heap.ArenaAllocator.init(std.heap.page_allocator);
- const arena = &arena_allocator.allocator;
+ const arena = arena_allocator.getAllocator();
const args = try std.process.argsAlloc(arena);
const path_to_walk = args[1];
tools/update_clang_options.zig
@@ -450,8 +450,13 @@ const cpu_targets = struct {
pub fn main() anyerror!void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
+<<<<<<< HEAD
const allocator = &arena.allocator;
+=======
+
+ const allocator = arena.getAllocator();
+>>>>>>> 11157e318 (allocgate: stage 1 and 2 building)
const args = try std.process.argsAlloc(allocator);
if (args.len <= 1) {
tools/update_cpu_features.zig
@@ -769,7 +769,7 @@ const llvm_targets = [_]LlvmTarget{
pub fn main() anyerror!void {
var arena_state = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena_state.deinit();
- const arena = &arena_state.allocator;
+ const arena = arena_state.getAllocator();
const args = try std.process.argsAlloc(arena);
if (args.len <= 1) {
@@ -845,7 +845,7 @@ fn processOneTarget(job: Job) anyerror!void {
var arena_state = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena_state.deinit();
- const arena = &arena_state.allocator;
+ const arena = arena_state.getAllocator();
var progress_node = job.root_progress.start(llvm_target.zig_name, 3);
progress_node.activate();
tools/update_glibc.zig
@@ -133,7 +133,7 @@ const Function = struct {
pub fn main() !void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
- const allocator = &arena.allocator;
+ const allocator = arena.getAllocator();
const args = try std.process.argsAlloc(allocator);
const in_glibc_dir = args[1]; // path to the unzipped tarball of glibc, e.g. ~/downloads/glibc-2.25
const zig_src_dir = args[2]; // path to the source checkout of zig, lib dir, e.g. ~/zig-src/lib
tools/update_spirv_features.zig
@@ -48,7 +48,7 @@ const Version = struct {
pub fn main() !void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
- const allocator = &arena.allocator;
+ const allocator = arena.getAllocator();
const args = try std.process.argsAlloc(allocator);